不完整的迁移——卡在生成新的迁移中
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 导出放在您的存储库中,清除旧的、损坏的迁移,并创建一个最初导入数据库转储的新迁移。然后像往常一样创建迁移。
【讨论】:
以上是关于不完整的迁移——卡在生成新的迁移中的主要内容,如果未能解决你的问题,请参考以下文章