php artisan migrate 表已经存在时怎么办?

我新增加了两张表,但 php artisan migrate 时说user表已经存在了,这是我上次建的表,但第二次执行php artisan migrate就报错了.

图片描述

请问这怎样解决?

阅读 11k
6 个回答

我最近也碰到这个情况,我是这样做的

mysqldump -uroot -p database > database.sql

然后进入数据库,删掉这个库,然后重新创建。
然后source

mysql > source ~/database.sql

我就是这么做的。

可能不够优雅,不过没有任何问题。

希望有所帮助

你可以执行rollback命令。前提是你有写down()函数

php artisan migrate:rollback

laravel 里面的 migrate 表受到手动或异常改动原因造成,这个表记录了你的操作,不能随便更改

这个问题主要是因为你在创建user表的时候 就没有创建成功 或者存在问题 创建完user保证可以rollback 再去创建其他表 就没问题了
建议删除user表 重新创建 drop table users;

//注意: 如果在执行迁移时发生「class not found」错误,试着先执行  composer dump-autoload 命令后再进行一次。
composer dump-autoload
//再次创建 
php artisan make:migration create_table_questions --create=questions
php artisan migrate 

在migrate文件的up方法下面增加一个判断语句

        if(Schema::hasTable(self::TABLE_NAME)){
            Schema::drop(self::TABLE_NAME);
        }

把数据库里的这张表删了呗。。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题