【问题标题】:Skip Current Migrations but Apply Future Ones跳过当前迁移但应用未来迁移
【发布时间】:2019-05-31 14:45:43
【问题描述】:

问题: 有什么方法可以避免在已正确配置的远程数据库上运行当前迁移,同时还允许对其应用未来的迁移?

上下文

我有一个现有的具有大量迁移的 Rails 应用程序,到目前为止,它一直在使用本地 postgres 数据库。存在一个应该与我的本地数据库结构基本匹配的远程 postgres 数据库。

当我尝试连接到它时,我收到“等待迁移”错误。尝试运行我的迁移时会出现有关已存在表的错误。

我想跳过所有当前的迁移,但与我看到的许多类似问题不同,我想确保我未来的迁移能够在这个远程数据库上工作。

编辑:

我遵循了这个答案:

Rails 4 how to ignore pending migrations

并将我自己当前的方案版本号插入到删除数据库的 schema_migrations 表中。但未决的迁移仍然存在。

我可以确认尝试运行迁移会导致我出现表已存在的错误。该表是第一个迁移过去远程数据库之前在模式表中的最新版本。它似乎忽略了我插入的当前最新版本。

【问题讨论】:

    标签: ruby-on-rails rails-migrations


    【解决方案1】:

    您必须将要忽略的所有迁移版本号添加到schema_migrations

    其他可能也适用的技术 - 使用 squasher 或手动进行迁移压缩。重点是将所有不回滚的旧迁移合并为一个。

    【讨论】:

      猜你喜欢
      • 2017-06-24
      • 1970-01-01
      • 2018-04-23
      • 2016-05-09
      • 2020-10-14
      • 2018-02-25
      • 2013-08-06
      • 2012-02-07
      • 1970-01-01
      相关资源
      最近更新 更多