我的情况非常糟糕,正在进行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
以便将来如果任何其他开发人员想要处理这个项目,他只需要运行迁移命令来迁移数据库或创建表或创建列...我应该重新编写所有迁移吗?请求帮助。谢谢
答案 0 :(得分:1)
又快又脏?
删除当前的迁移文件。清除migrations
表并导出整个数据库。将SQL转储放在repo中,并指示其他开发人员在运行php artisan migrate
之前导入它。在导入转储并截断migrations
表的情况下,您可以创建新的迁移,而不会与旧版迁移发生进一步冲突。
感到野心勃勃?
使用 migrations-generator 等软件包根据您当前的数据库结构生成迁移。然后,迁移离开。
答案 1 :(得分:1)
根据您的情况,我将 .sql 导出到您的存储库中,清除旧的,损坏的迁移,并创建一个最初导入数据库转储的新迁移。然后只需正常创建迁移。