gpt4 book ai didi

ruby-on-rails - 重新排序/更改迁移文件的时间戳

转载 作者:行者123 更新时间:2023-11-29 12:43:48 25 4
gpt4 key购买 nike

我的一个迁移文件引用了另一个表/模型,该表/模型将在迁移序列中进一步创建。

Postgres 不喜欢这样:

PG::UndefinedTable: ERROR: relation "users" does not exist

所以我想知道手动重新排序迁移文件(通过发明新的时间戳/前缀)是否存在任何潜在问题?

受影响的表已经向下迁移。

最佳答案

当您运行 rake db:migrate 命令时,它会比较 schema_migrations 表和位于 db/migrate 文件夹中的迁移文件。所有未执行的迁移都会收到 MigrationClass#up 调用。

因此,从您的代码已经发布和/或其他用户运行迁移时开始,更改您的迁移时间戳/名称可能会导致无法处理的迁移过程(因为 schema_migrations 将处理迁移将更改后的时间戳作为新的、未处理的时间戳,并尝试“再次”处理它)。可能的解决方法是暂时注释 up 方法的内容,并在迁移完成后取消注释。为了好玩,您还可以直接从数据库控制台操作 schema_migrations 表(添加或删除必要的记录)。不过,这两种方式听起来都像是黑客攻击。

在那之前......一切都应该完美无缺。

关于ruby-on-rails - 重新排序/更改迁移文件的时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36186597/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com