Fel*_*ger 3 postgresql ruby-on-rails rails-migrations ruby-on-rails-5
我的一个迁移文件正在引用另一个表/模型,该表/模型将在迁移序列中进一步创建。
Postgres 不喜欢这样:
PG::UndefinedTable:错误:关系“用户”不存在
所以我想知道手动重新排序迁移文件(通过发明新的时间戳/前缀)是否存在任何潜在问题?
受影响的表已经向下迁移。
当您运行rake db:migrate命令时,它会比较schema_migrations位于 db/migrate 文件夹中的表和迁移文件。所有未执行的迁移都会收到MigrationClass#up调用。
因此,从您的代码已经发布和/或迁移由其他用户运行的那一刻开始,更改您的迁移时间戳/名称可能会导致无法处理的迁移过程(因为schema_migrations会将具有更改时间戳的迁移视为新的、未处理的迁移,并尝试“再次”处理它)。可能的解决方法是对up方法的内容进行一段时间的注释,并在迁移完成后取消注释。为了好玩,您还可以schema_migrations直接从数据库控制台操作表(添加或删除必要的记录)。但这两种方式听起来都像是黑客。
在那之前......一切都应该完美无缺。
| 归档时间: |
|
| 查看次数: |
3249 次 |
| 最近记录: |