我在开发中有一个相对简单的Rails 5应用程序。开发和测试数据库都是SQLite3。
当我运行db:test:prepare
或db:reset
时,Rails将中止并抛出异常的时间约为75%。堆栈跟踪的顶部显示了以下内容:
ActiveRecord::StatementInvalid: SQLite3::IOException: disk I/O error: CREATE TABLE "ar_internal_metadata" ("key" varchar NOT NULL PRIMARY KEY, "value" varchar, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL)
但是表有所不同-它可以是任何表(内置或不内置)。它抱怨的声明对我来说似乎是正确的(除了结尾处可能没有分号)。
然后,大约有25%的时间,它可以正常工作。
我可以重复运行这些任务,直到每次需要重置测试数据库时它都起作用,但这既令人沮丧又令人担忧-似乎存在潜在的问题。
感谢您的帮助。