使用迁移更改表Laravel 5

San*_*oza 16 migration laravel

我正在使用laravel 5进行应用程序.我将我定义的字段'vote'更改为

$ table-> enum ('vote', [ '- 1 ', '0 ', '1 ']); 
Run Code Online (Sandbox Code Playgroud)

并应如下

$ table-> enum ('vote', [' 1', ' 2', ' 3', ' 4', ' 5'] ) ;
Run Code Online (Sandbox Code Playgroud)

dav*_*jal 22

为此,您应该按照以下步骤操作:

  1. 创建一个新的迁移文件

    php artisan make:migration update_votes_table
    
    Run Code Online (Sandbox Code Playgroud)
  2. 打开新创建的迁移文件(app_folder\database\migrations {date_migrationfile_was_created} -update_votes_tables.php)

  3. 更改要更改的列

有关详细信息,请参阅有关数据库迁移文档

注意:如果您将迁移文件添加到问题中,我们可以提供更详细的帮助

  • 根据Laravel文档:`以下列类型不能“更改”:char,double,enum,(...)。因此,您将需要针对这些列类型进行手动更新。但是,在其他更简单的类型的迁移中,可以使用`-> change()`方法。 (2认同)

Moo*_*man 13

这是我怎么做的:

 php artisan make:migration Alter_votes_to_tableName --table=tableName
Run Code Online (Sandbox Code Playgroud)

打开文件然后更改它

php artisan migrate
Run Code Online (Sandbox Code Playgroud)


lin*_*ref 9

修改列需要doctrine/dbal包。

  1. 安装包

    composer require doctrine/dbal
    
    Run Code Online (Sandbox Code Playgroud)
  2. 创建迁移

    php artisan make:migration add_values_to_vote_column_in_votes_table
    
    Run Code Online (Sandbox Code Playgroud)
  3. 更新迁移文件

    Schema::table('votes', function (Blueprint $table) {
        $table->enum('vote', [' 1', ' 2', ' 3', ' 4', ' 5'])->change();
    });
    
    Run Code Online (Sandbox Code Playgroud)
  4. 运行迁移

    php artisan migrate
    
    Run Code Online (Sandbox Code Playgroud)

文档