Gar*_*ver 9 ruby rake dbmigrate schema.rb ruby-on-rails-3
如果在以下位置使用此选项config/application.rb:
config.active_record.schema_format = :sql
Run Code Online (Sandbox Code Playgroud)
然后当你这样做:
rake db:migrate
Run Code Online (Sandbox Code Playgroud)
它只会转储db/structure.sql.我知道它没有使用,db/schema.rb因为它正在使用该:sql选项,但你怎么能rake db:migrate生成db/schema.rb呢?
我们需要它,因为RubyMine 4.5和IntelliJ IDea 11 db/schema.rb用于自动完成列.
Gar*_*ver 10
要生成/更新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
Run Code Online (Sandbox Code Playgroud)
这对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
Run Code Online (Sandbox Code Playgroud)
(注意:../在路径中使用Rakefile因为__FILE__评估结束的路径/Rakefile.)
| 归档时间: |
|
| 查看次数: |
5378 次 |
| 最近记录: |