Rails - 在迁移期间将表保留在structure.sql之外

时间:2016-04-20 16:32:28

标签: ruby-on-rails-4 activerecord

当您的架构格式为:ruby时,忽略表格很简单,但是当您的架构格式为:sql时,有没有办法实现?

environment.rb中的理想情况是这样的:

ActiveRecord::SQLDumper.ignore_tables = ['table_name']

通过AR源代码快速阅读后,它看起来没有希望。

1 个答案:

答案 0 :(得分:5)

目前无法执行此操作,当架构格式设置为:sql时,Rails不会通过常规SchemaDumper,而是使用ActiveRecord::Tasks::PostgreSQLDatabaseTasks中的任务转储,check it out here

代码非常简单。我想出了一个ActiveRecord的简单补丁,应该按预期工作。它依赖于在database.yml文件中设置要忽略的表。它基本上添加了以下代码:

ignore_tables = configuration['ignore_tables']
unless ignore_tables.blank?
  args += ignore_tables.split(',').map do |table|
    "-T #{table}"
  end
end

我刚刚提交了a pull request to rails这些更改。如果您想测试它。