如何将列类型从字符串更改为整数? Laravel 5

时间:2018-05-08 08:21:10

标签: php laravel-5 types enums database-migration

我在名为owner_type的表格中有一个名为events的列。此列填充以下两个值之一:0(表示常规用户)和1(对于业务用户)。

此列的数据类型为string,我想将其更改为integer,因为它始终包含0和1。所以我这样做了:

public function up()
{
    Schema::table('events', function (Blueprint $table) {
        $table->integer('owner_type')->change()->default(0);
    });
}

/**
 * Reverse the migrations.
 *
 * @return void
 */
public function down()
{
    Schema::table('events', function (Blueprint $table) {
        $table->string('owner_type')->default(0)->change();
    });
}

但是,我收到此错误:

  

n AbstractPlatform.php第461行:

     

请求未知的数据库类型枚举,   Doctrine \ DBAL \ Platforms \ MySQL57Platform可能不支持它。

在创建events的迁移中,我有:

    $table->enum('**', ['**', '**'])->default('**');
    $table->enum('status', ['*', '*', '*', '*', '*'])->default('*');

但是,此表已经迁移。那有什么不对?

1 个答案:

答案 0 :(得分:0)

试试这个

    public function up()
{
    //
    Schema::table('events', function($table) {
        $table->string('owner_type')->default(0);
    });
}

/**
 * Reverse the migrations.
 *
 * @return void
 */
public function down()
{
    //
    Schema::table('events', function($table) {
        $table->dropColumn('owner_type');
    });
}