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 次 |
最近记录: |