Php工匠迁移只创建一个表

时间:2017-02-14 15:28:41

标签: php laravel artisan

我使用php artisan make:migration创建了三次迁移,之后我运行了php artisan migrate。此命令仅在我的数据库中创建一个表而不是3.

3 个答案:

答案 0 :(得分:0)

要使工匠迁移创建一个新表,您的迁移脚本必须包含Schema :: create not Schema :: table。您可以在生成脚本时将此选项添加到命令中--create = table_name

答案 1 :(得分:0)

artisan migrate无法打开以前运行且位于迁移表中的迁移。如果您在迁移中修改了数据库并手动删除了表,则不会重新创建表。

您必须检查迁移表以检查已运行的迁移,以及您运行的迁移是否在一行中,请手动删除该行。为了将来证明这一点,您需要运行migrate:rollback,前提是迁移在down函数中有一个删除表。

答案 2 :(得分:0)

您需要做的就是转到AppServiceProvider.php文件并在boot方法中设置一个默认的字符串长度:

SQLSTATE[42000]: Syntax error or access violation: 1071

添加以下两项:

使用Illuminate \ Support \ Facades \ Schema; 架构:: defaultStringLength(191);

https://laravel.com/docs/master/migrations#creating-indexes