我不断收到错误消息:
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
下。
我假设这是我的问题。这是什么意思?
答案 0 :(得分:3)
您是否正在尝试在Rails服务器运行时执行此操作?
或者您是否尝试使用SQLite数据库浏览器等工具手动插入或删除表中的行?
Sqlite的并发支持很差,任何抛出数据库的操作都会引发Busy异常。
如果错误继续发生,并且您在数据库中拥有的数据并不重要,只需删除数据库并再次迁移。错误应该消失。