我有一个连接到另一个Rails应用数据库的Rails应用。他们有几个常见的模型。使用控制台时,一切正常(ActiveRecord正确查询表),但在使用Web服务器时,Rails会检查挂起的迁移并引发错误Migrations are pending
。我希望通过此检查,因为这两个应用程序具有不同的迁移。然后启动服务器。我试过了:
config.active_record[:migration_error] = false
config.active_record.migration_error = false
但没有运气。如何让Rails忽略那些待定的迁移?跳过这张支票?或者有没有办法以某种方式命名它们,或者将相应的mtime
设置为上次迁移文件?
答案 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
...然后重新启动服务器