【问题标题】:Not able to migrate new table in laravel无法在 laravel 中迁移新表
【发布时间】:2018-04-23 08:43:35
【问题描述】:

我已经使用命令创建了一个表

创建表:php artisan make:migration create_movie --create=movie

然后将 body 和 user_id 列添加到代码中

public function up()
{
    Schema::create('movie', function (Blueprint $table) {

        $table->increments('id');

        $table->text('body');

        $table->integer('user_id');

        $table->timestamps();
    });
}

/**
 * Reverse the migrations.
 *
 * @return void
 */
public function down()
{
    Schema::dropIfExists('movie');
}

然后点击php artisan migrate命令

但这向我显示了这个异常,我无法将电影表添加到数据库中

[照亮\数据库\查询异常] SQLSTATE[42S01]:基表或视图已存在:1050 表“用户”已存在(SQL:创建表 users ( id int unsigned not null auto_increment 主键,name varchar(255) not null,@ 987654325@ varchar(255) 不为空, password varchar(255) not null, remember_token varchar(100) null, created_at timestamp null, updated_at tim estamp null) 默认字符集 utf8mb4 collat​​e utf8mb4_unicode_ci)

[PDO异常] SQLSTATE[42S01]:基表或视图已存在:1050 表“用户”已存在

【问题讨论】:

  • 问题可能不在此迁移中?好像您的托盘添加了两次用户。也许托盘运行“composer dumpautoload”
  • 也许您删除或截断了您的migrations 表?似乎问题在于尝试创建(或重新创建)users 表,而不是这个 movie 表。
  • 似乎users table 没有添加 artisan 命令,但仍然存在。如果您不关心表中的数据(小心,这会删除所有表)尝试使用php artisan migrate:freshphp artisan migrate:refresh 命令。或者您可以手动删除表而不是发出php artisan migrate 命令。

标签: laravel migration


【解决方案1】:

您可以使用下一个 artisan 命令回滚所有迁移,然后执行 migrate 命令。请在此处查看文档https://laravel.com/docs/8.x/migrations#roll-back-migrate-using-a-single-command

php artisan migrate:fresh

【讨论】:

    【解决方案2】:

    请清空迁移表并运行php artisan migrate 命令

    在迁移文件夹中创建测试文件夹,然后在测试文件夹中移动/复制新创建的迁移并在终端/cmd 中运行以下命令,例如:

    php artisan migrate --path=/database/migrations/test/
    

    【讨论】:

      【解决方案3】:

      您可以尝试像这样运行新的生成电影特定文件迁移

      php artisan migrate --path=/database/migrations/{{Your_movie_migration_filename}}
      

      【讨论】:

        【解决方案4】:

        清空数据库表并再次运行迁移,或者如果您不想丢失数据,请执行以下操作:

        找到您的电影表迁移(数据库>迁移)并将日期更改为迁移文件上任何最旧的日期,以便它在文件夹中排在第一位。

        再次运行迁移,即使您收到有关 users 表的错误(不是错误,只是说它已经存在),电影表也会被创建。

        迁移是从上到下迁移

        【讨论】:

          猜你喜欢
          • 2016-10-23
          • 2018-08-01
          • 1970-01-01
          • 2020-08-20
          • 1970-01-01
          • 2018-04-24
          • 2020-02-27
          • 1970-01-01
          • 2016-04-12
          相关资源
          最近更新 更多