Laravel 5迁移出错了

时间:2015-05-09 14:39:50

标签: php mysql laravel laravel-5

我使用php artisan make:migration --table=my_table创建了一个新迁移,然后继续为现有表创建一个新列。所谓的列应该是unique index,但我忘了让它可以为空,因为这个原因,php artisan migrate失败了,因为多行会有一个重复的条目(这将是一个空字符串{{1 }})

到目前为止,合理的方法是将''添加到列中并重新运行迁移。但由于新列已经存在于表中(添加唯一键时迁移失败,但列创建成功)我必须先删除它。

我的第一个想法是运行nullable,但它执行了之前的迁移,而不是我刚刚创建的迁移。

到目前为止,正确的方法是什么?我应该手动登录数据库cli并编写查询,还是laravel提供一种通过php artisan migrate:rollback处理此问题的方法?

2 个答案:

答案 0 :(得分:0)

我认为您可以修改表格的原始迁移并添加nullable,但您需要在旧迁移中执行此操作。正如您所注意到的,新迁移只会将补丁应用于现有表。

修改迁移后,您可以再次回滚和转发。当然,您需要小心处理数据(如果需要,请检查Database Seeding

你也可以使用php artisan migrate:refresh这将删除所有表格和数据(所以要非常小心),但它应该用新结构重新创建你的表格。

答案 1 :(得分:-2)

试试这个:

 php artisan migrate:rollback --table=table_name_here