我想使用sqlite和内存数据库在我的ruby on rails应用程序上使用rspec运行测试。但是,每次我启动rspec时,它都会告诉我迁移正在挂起,如果我事先运行了迁移,就可以了。有没有办法在我运行测试之前每次都进行迁移? 这是我的数据库配置
test:
adapter: sqlite3
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
timeout: 5000
database: ":memory:"
答案 0 :(得分:0)
您需要在测试中加载架构,而不是依赖迁移。
根据this blogpost的替换建议
ActiveRecord::Migration.maintain_test_schema!
使用
ActiveRecord::Base.establish_connection(adapter: 'sqlite3', database: ':memory:')
ActiveRecord::Schema.verbose = false
load "#{Rails.root.to_s}/db/schema.rb"