Rails:锁定数据库? - SQLite3 :: BusyException:

时间:2012-11-02 17:36:47

标签: ruby-on-rails

我不断收到错误消息:

SQLite3::BusyException: database is locked: INSERT INTO "users" ("created_at", "email", "name", "password_digest", "updated_at") VALUES (?, ?, ?, ?, ?)

当我尝试执行代码时:

@user = User.new(:name => "User1", :email => "email@gmail.com", :password => "password", :password_confirmation => "password")
@user.save

创建用户后调用save是否存在问题?我需要超时吗?如果是这样,我如何设置一个/抓取数据库变量。

我不知道这里出了什么问题。正在创建User变量,因为如果我删除了保存功能,我可以输出@user变量的属性。我只是假设我做的事情非常糟糕。我知道我不应该对用户进行硬编码,但我是出于测试目的而做的。

这里发生了什么?

编辑:

我试过drop我的数据库,但它抱怨sqlite3文件丢失了。但是,当我导航到它所抱怨的确切路径时,文件将列在ls下。

我假设这是我的问题。这是什么意思?

1 个答案:

答案 0 :(得分:3)

您是否正在尝试在Rails服务器运行时执行此操作?

或者您是否尝试使用SQLite数据库浏览器等工具手动插入或删除表中的行?

Sqlite的并发支持很差,任何抛出数据库的操作都会引发Busy异常。

如果错误继续发生,并且您在数据库中拥有的数据并不重要,只需删除数据库并再次迁移。错误应该消失。