【问题标题】:Laravel 5.1 - Migration ErrorLaravel 5.1 - 迁移错误
【发布时间】:2015-09-05 20:25:10
【问题描述】:

我试图创建一个新表,但是当我添加 Schema::create() 部分时,我从用户那里复制/粘贴了它,所以我的原始用户表和我的新表都迁移为 Schema::create('users') 并且它遇到了问题,因为有 2 个同名的表。当我意识到这个问题时,我修复了它,但我现在无法使用php artisan migrate:resetphp artisan migrate:refresh 删除表,因为现在已经有两个同名表。 (因此,我也无法回滚)。

我的数据库名称原来是 Homestead。

我得到的错误:

[照亮\数据库\查询异常] SQLSTATE[42S02]:未找到基表或视图:1051 未知表 'homestead.users'(SQL:删除表 users

[PDO异常] SQLSTATE [42S02]:未找到基表或视图:1051 未知表 'homestead.users'

如果我手动登录 vagrant ssh 并使用以下命令手动删除和创建表,我不确定是否会搞砸一切:

mysql> drop database Homestead;

mysql> create database Homestead;

【问题讨论】:

  • 您可以只执行drop database homestead;create database homestead; 然后再次运行php artisan migrate
  • jamesking56 的回答解决了这个问题。谢谢

标签: mysql laravel laravel-5 vagrant virtualbox


【解决方案1】:

根据@Jamesking56 的评论,我使用了:

mysql> drop database homestead;

mysql> create database homestead;

php artisan migrate

这解决了我的问题。

【讨论】:

    【解决方案2】:

    在迁移的down() 函数中放置此代码。

    Schema::dropIfExists('users');
    

    然后从命令行执行以下命令。

    php artisan migrate:rollback
    
    php artisan migrate
    

    重要提示:如果用户表存在,这将删除用户表。如果表不存在,则不会发生任何事情并且不会给出错误,因为 MySQL 会将错误转换为警告。

    【讨论】:

      【解决方案3】:

      从数据库中删除所有表,包括迁移表。删除表后,您可以像以前一样迁移数据库。

      【讨论】:

        猜你喜欢
        • 2016-07-06
        • 2016-02-10
        • 2017-05-11
        • 2012-06-07
        • 2018-06-05
        • 2014-06-10
        • 2015-12-19
        • 2017-06-18
        相关资源
        最近更新 更多