如何忽略待定迁移?

时间:2016-08-08 14:33:45

标签: ruby-on-rails activerecord

我有一个连接到另一个Rails应用数据库的Rails应用。他们有几个常见的模型。使用控制台时,一切正常(ActiveRecord正确查询表),但在使用Web服务器时,Rails会检查挂起的迁移并引发错误Migrations are pending。我希望通过此检查,因为这两个应用程序具有不同的迁移。然后启动服务器。我试过了:

config.active_record[:migration_error] = false
config.active_record.migration_error = false

但没有运气。如何让Rails忽略那些待定的迁移?跳过这张支票?或者有没有办法以某种方式命名它们,或者将相应的mtime设置为上次迁移文件?

2 个答案:

答案 0 :(得分:2)

在In RAILS_ROOT / config / environments /中的相应环境文件中尝试此操作,例如development.rb,staging.rb或production.rb

config.active_record.migration_error = false

由于rails将迁移信息存储在名为schema_migrations的表中。因此,可以将迁移中的版本添加到该表中以跳过特定的迁移。版本是文件名中描述之前的数字字符串。

或者,您可以重命名迁移,例如从

20160801105511_your_table.rb

.20160801105511_your_table.rb

在文件名的开头添加一个点。希望它能奏效。

答案 1 :(得分:0)

如果将其放在主应用程序中似乎无效。rb

似乎只有将其放在特定的环境配置中才能起作用,例如development.rb:

# development.rb
config.active_record.migration_error = false

...然后重新启动服务器