outOfOrder
当设置为 true时,我在日志中收到以下警告消息:
警告:outOfOrder 模式处于活动状态。迁移运行可能无法重现。
这条消息的确切含义是什么?如果有人能告诉我迁移发生时会发生什么,那就太好了。任何示例都会有所帮助。
假设 3 个迁移:
使用 outOfOrder 运行可能会导致您的迁移应用如下:
1, 3, 2 -> 在数据库中:汤姆、杰瑞、米奇
稍后重新运行它会产生
1, 2, 3 -> 在数据库中:汤姆、杰瑞、米奇
这就是为什么 outOfOrder 具有潜在危险并且第一次迁移运行可能无法重现的原因。
为了增加 Axel 的答案,不仅结果数据可能会因顺序而异,而且迁移甚至可能是不可能的。考虑:
迁移:
foo
foo.bar
foo.bar
为foo.baz
执行顺序:
foo
有列baz
foo.bar
未找到列foo
找不到表foo
找不到表