Laravel迁移在现有数据库表中添加colum问题

时间:2017-08-29 13:29:44

标签: php laravel

我在laravel 4.2项目中工作,现在我想在现有表用户中添加列。现在我想添加另一列,当我运行迁移命令时,我总是收到相同的消息"无需迁移。" 以下是我的迁移模式代码

public function up()
{
    Schema::table('users', function($table) {
        $table->string('dob')->nullable()->change();
    });
}

我在终端

中运行的Commant
 php artisan migrate --path=/database/migrations/2017_08_29_130700_add_colum_user_is_black_list.php

我还运行以下命令

php artisan migrate

但是当我运行上面的命令时,我收到以下错误

  

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

1 个答案:

答案 0 :(得分:2)

您需要按照以下步骤使用laravel迁移在现有表中添加列。

Laravel 3 +,4 +

  1. 使用CLI进行迁移(使用特定名称以避免与现有模型发生冲突)

    php artisan migrate:make add_dob_users_table --table=users

  2. Laravel 5 +

    1. 使用CLI进行迁移(使用特定名称以避免与现有模型发生冲突)

      php artisan make:migration add_dob_to_users

    2. Laravel 3 +

      1. 使用Schema::table()方法(因为您正在访问现有表,而不是创建新表)并添加如下列:

        public function up()
        {
            Schema::table('users', function($table) {
                $table->string('dob')->nullable()->change();
            });
        }
        
      2. 添加回滚选项:

        public function down()
        {
            Schema::table('users', function($table) {
                $table->dropColumn('dob');
            });
        }
        
      3. Laravel 4 +,5 +

        1. 使用Schema::table()方法(因为您正在访问现有表,而不是创建新表)并添加如下列:

          public function up()
          {
              Schema::table('users', function(Blueprint $table) {
                  $table->string('dob')->nullable()->change();
              });
          }
          
        2. 添加回滚选项:

          public function down()
          {
              Schema::table('users', function(Blueprint $table) {
                  $table->dropColumn('dob');
              });
          }
          
        3. Laravel 3 +,4 +,5 +

          1. 最后以

            运行迁移

            php artisan migrate

          2. 创建和运行迁移的文档是

            Laravel 3 +

            Laravel 3 Schema Builder

            Laravel 3 Migrations

            Laravel 4,5

            Laravel Schema Builder

            Laravel Migrations