不完整的迁移 - 阻碍生成新的迁移

时间:2016-02-08 21:49:21

标签: laravel laravel-5 database-migration laravel-migrations

我的情况非常糟糕,正在进行Laravel 5项目。以前由其他开发人员开发。该开发人员在开始时使用migration generators创建了几个表,并使用迁移添加了一些columns。之后,他使用一些sql columns直接添加了表GUI。我获得了导入的sql dump并将其设置在我的本地计算机上,现在当我使用table创建php artisan make:migration create_myTableName_table --create="myTableName"时,表格迁移已成功创建,但是,当我这样做时{ {1}}它给了我php artisan migrate我检查了迁移文件夹并将其与当前版本的SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'someTable' already exists匹配,我可以看到列不同,与其他表一样。

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

2 个答案:

答案 0 :(得分:1)

又快又脏?

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

感到野心勃勃?

使用 migrations-generator 等软件包根据您当前的数据库结构生成迁移。然后,迁移离开。

答案 1 :(得分:1)

根据您的情况,我将 .sql 导出到您的存储库中,清除旧的,损坏的迁移,并创建一个最初导入数据库转储的新迁移。然后只需正常创建迁移。