不完整的迁移——卡在生成新的迁移中

Posted

技术标签:

【中文标题】不完整的迁移——卡在生成新的迁移中【英文标题】:incomplete migrations- stuck in generating new migrations 【发布时间】:2016-05-18 17:27:29 【问题描述】:

我在这里遇到了非常糟糕的情况,正在从事 Laravel 5 项目。以前由另一个开发人员开发。该开发人员一开始使用migration generators 创建了几个表,并使用迁移添加了一些columns。之后,他立即使用一些 sql GUI 添加了表 columns。我得到了sql dump,我将它导入并在我的本地机器上进行设置,现在当我使用php artisan make:migration create_myTableName_table --create="myTableName" 创建table 时,表迁移已成功创建,但是,当我执行php artisan migrate 时,它给了我@ 987654330@ 我检查了迁移文件夹并将其与当前版本的someTable 匹配,我可以看到列不同,与其他表相同。

在这种情况下处理这个问题的最佳情况应该是什么,我想跟上Laravel migrations generator 以便将来如果任何其他开发人员想要处理这个项目,他只需要运行迁移命令来迁移数据库或创建表或创建列...我应该重写所有迁移吗?请帮忙。谢谢

【问题讨论】:

【参考方案1】:

又快又脏?

删除当前的迁移文件。清除您的 migrations 表并导出整个数据库。将 SQL 转储放入 repo 并指示其他开发人员在运行 php artisan migrate 之前将其导入。导入转储并截断 migrations 表后,您可以创建新迁移,而不会与旧迁移发生进一步冲突。

感到雄心勃勃?

使用 migrations-generator 之类的包根据您当前的数据库结构生成迁移。然后,迁移出去。

【讨论】:

如果你删除当前迁移并截断迁移表,Ambitious 方式可能与快速而肮脏的方式一样快。【参考方案2】:

鉴于您的情况,我会将 .sql 导出放在您的存储库中,清除旧的、损坏的迁移,并创建一个最初导入数据库转储的新迁移。然后像往常一样创建迁移。

【讨论】:

以上是关于不完整的迁移——卡在生成新的迁移中的主要内容,如果未能解决你的问题,请参考以下文章

新的 Flyway 迁移破坏了现有的 jOOQ 生成的代码

从 EF 5 Code First 迁移生成完整的 SQL 脚本

如何清理并为现有数据库生成新的迁移?

Git仓库完整迁移

Laravel迁移不完整[重复]

自动生成 Flyway 的迁移 SQL