db/schema.rb即使使用该选项也要生成/更新:sql,您可以将其放入您的Rakefile:
Rake::Task["db:migrate"].enhance do
if ActiveRecord::Base.schema_format == :sql
Rake::Task["db:schema:dump"].invoke
end
end
这对 IDea 和 RubyMine 来说应该没问题。
对于只希望文件作为参考的其他人,您可能希望将其重命名为其他类似的名称db/schema.rb.backup,以免造成混淆。要做到这一点:
Rake::Task["db:migrate"].enhance do
if ActiveRecord::Base.schema_format == :sql
Rake::Task["db:schema:dump"].invoke
File.rename(File.expand_path('../db/schema.rb', __FILE__), File.expand_path('../db/schema.rb.backup', __FILE__))
end
end
(注意:../在路径中使用,Rakefile因为__FILE__计算结果为以 结尾的路径/Rakefile。)