在 rails upgrade 迁移条目从模式迁移表中删除后
Posted
技术标签:
【中文标题】在 rails upgrade 迁移条目从模式迁移表中删除后【英文标题】:After rails upgrade migration entry are getting delete from schema migration table 【发布时间】:2021-12-26 13:17:48 【问题描述】:从 rails 5.1 升级到 rails 6.1 后,除了最后一个条目外,所有条目都将从 schema_migrations 表中删除。
我在所有环境中都面临这个问题。对于测试环境,我通过注释这行 ActiveRecord::Migration.maintain_test_schema! 修复了测试环境,但是在开发和非生产环境中,我仍然面临这个问题。
我尝试用谷歌搜索它,但我没有看到任何与之相关的文章。谁能提供一些见解?
Rails 6.1.0 红宝石 3.0.0 activerecord-oracle_enhanced-adapter 6.1.4 数据库甲骨文
【问题讨论】:
Rails Engine 6.1.4.1 和 postgresql 数据库有同样的问题。在这个级别有一种气味,似乎与 db 无关:github.com/rails/rails/issues/26948 【参考方案1】:如果您没有待处理的更改,只需删除迁移。
https://edgeguides.rubyonrails.org/active_record_migrations.html#schema-dumping-and-you
移民,尽管可能很强大,但不是权威来源 为您的数据库架构。您的数据库仍然是权威的 资源。默认情况下,Rails 会生成 db/schema.rb 来尝试 捕获数据库架构的当前状态。
创建一个新的实例往往更快,更不容易出错 通过 bin/rails 加载模式文件来获取应用程序的数据库 db:schema:load 比它重播整个迁移历史。老的 如果这些迁移使用 改变外部依赖或依赖应用程序代码 与您的迁移分开发展。
【讨论】:
以上是关于在 rails upgrade 迁移条目从模式迁移表中删除后的主要内容,如果未能解决你的问题,请参考以下文章
是否有任何与 rails ActiveRecord 迁移相当的 Firestore 数据库模式迁移概念?