如何禁用db:schema:dump以进行迁移

lza*_*zap 17 ruby ruby-on-rails-3

我不希望Rails 3在每次迁移时生成我的模式.如何正确禁用它?

谢谢

ZX1*_*12R 67

对于仍在寻找迁移后禁用数据库转储的方法的任何人,现在可以在rails 4中使用配置,可以将其设置为false,如下所示:

config.active_record.dump_schema_after_migration = false
Run Code Online (Sandbox Code Playgroud)

会阻止它.此更改中添加了配置 - https://github.com/rails/rails/pull/13948

  • 请注意,这适用于版本4及更高版本.David Waller的答案适用于早期版本(我在一些遗留应用程序中使用过) (2认同)

Dav*_*ler 9

创建一个特定于应用程序的任务(正如Alex Kaushovik建议的那样)......

创建一个文件lib\tasks\db_schema_override(实际名称并不重要,你需要的lib \任务.rake文件)用如下(信贷内容马修·巴斯remove_task)

Rake::TaskManager.class_eval do
  def remove_task(task_name)
    @tasks.delete(task_name.to_s)
  end
end

Rake.application.remove_task('db:schema:dump')
namespace :db do
  namespace :schema do
    task :dump do
      # Overridden to do nothing
    end
  end
end
Run Code Online (Sandbox Code Playgroud)