我们在application.rb config.active_record.schema_format = :sql
在每次spork运行之前,我们正在重新加载数据库中的模式。但是,这不起作用。如您所见,代码正在加载schema.rb文件。但它应该将db/structure.sql
文件加载到数据库中。
ActiveRecord::Schema.verbose = false
def reload_database
silence_stream(STDOUT) do
load("#{Rails.root}/db/schema.rb")
end
end
问题是schema.rb已过时。模型的大多数属性不再出现在模式文件中。这就是spork数据库没有所有属性的原因。这引发了一些测试中没有发现问题的方法。例如:
AdwordsCampaign::visible#test_0003_sets the default state to visible of new campaigns: NoMethodError: undefined method `visible' for #<AdwordsCampaign:0x007fef94c66d18>
我正在寻找的是一种使load命令加载SQL模式的方法。