【问题标题】:I can’t add new columns to the table from laravel even after following the procedure of migration?即使遵循迁移过程,我也无法从 laravel 向表中添加新列?
【发布时间】:2019-04-16 00:31:10
【问题描述】:

我正在执行从 laravel 向用户表添加新列投票的所有步骤,但数据库中仍然没有?请告诉我我的错误在哪里? 第一 php artisan make:migration add_votes_to_users_table --table=users

public function up()
{
    Schema::table('users', function (Blueprint $table) {
         $table->integer('votes');
    });
}

/**
 * Reverse the migrations.
 *
 * @return void
 */
public function down()
{
    Schema::table('users', function (Blueprint $table) {
        $table->dropColumn('votes');
    });
}
php artisan migrate

enter image description here

来自 cmd- 的错误 在 Connection.php 第 647 行:

SQLSTATE[42S01] 和 在 Connection.php 第 449 行:

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

【问题讨论】:

  • 您是否收到任何错误消息?尝试以详细模式运行命令php artisan migrate -v,它有什么说明吗?
  • 在 Connection.php 第 647 行:SQLSTATE[42S01] 和在 Connection.php 第 449 行:SQLSTATE[42S01]:基表或视图已经存在:1050 表“用户”已经存在
  • 看起来它正在尝试再次创建 users 表,这通常是由于 Laravel 的 migrations 表中的数据错误导致的,请尝试运行 php artisan migrate:rollback 几次直到您的数据库为空,或者手动删除表,然后尝试运行php artisan migrate
  • 好的明白了,谢谢
  • 您也可以尝试php artisan migrate:fresh 从头开始​​新的迁移。警告:这将删除所有表然后迁移。

标签: php laravel-5 laravel-migrations


【解决方案1】:

我怀疑您收到此错误的原因可能来自两个方面。

1) 您自己创建了 users 表而没有运行任何迁移

2) 迁移被中断。

如果上述方法不起作用,请尝试:

php artisan migrate:reset

要回滚所有更改,或者如果您想一次后退一步,您可以尝试:

php artisan migrate:rollback --step=1

最后,如果您确定可以重新开始并且您可以运行:

php artisan migrate:fresh

这将删除所有表(检查数据库以确保也删除任何剩余的,即使我认为不会留下任何东西,从来没有发生在我身上)然后运行

php artisan migrate 

从头再来

【讨论】:

  • Schema::table 做了一个ALTER 语句,所以不需要Schema::hasTable,如果他使用Schema::create,那么它会有意义
  • 你是对的。我的错。同样在这种情况下,hasColumn 将不起作用,因为错误来自尝试创建用户表。所以我认为唯一的解决方案是工匠命令。
【解决方案2】:

检查您的数据库。用户表是否已经退出。如果您手动创建。你得到这种类型的错误。如果用户表,您可以从数据库中手动删除。

【讨论】:

  • 如果您的数据库中已经存在用户表。然后只抛出这种类型的异常。您可以手动创建新数据库吗?然后在您的 env 文件中更改新的数据库名称。现在试试这个命令。希望完全迁移工作正常。
【解决方案3】:

感谢大家的建议,Sasa Blagojevic 说的对,我的数据库是以错误的方式创建的。实际上,当我第一次创建数据库时出现了主要问题,当时 SQLSTATE[42000] 出现在用户表中。这就是为什么在更新表格时仍然显示先前的错误。解决后现在没有错误了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-18
    • 2021-05-13
    • 2013-05-23
    • 2021-09-11
    • 2014-12-26
    • 2015-09-22
    • 2017-12-02
    • 1970-01-01
    相关资源
    最近更新 更多