如何将bigIncrements(' id')转换为uuid(' id')作为主键?

时间:2018-02-08 14:47:52

标签: mysql laravel migration uuid

目前,我们的系统已将BIGINTS作为主键,但现在我们正在转向GUIDS / UUIDS,我们需要转换表格。我认为在新的迁移中这样的事情可能有用,但不幸的是,它抱怨ID列已经存在。

public function up()
{
    Schema::table('users', function (Blueprint $table) {
        $table->dropPrimary('PRIMARY');
        $table->dropColumn('id');

        $table->uuid('id');
        $table->primary('id');
    });
}

public function down()
{
    Schema::table('users', function (Blueprint $table) {
        $table->bigIncrements('id');
        $table->primary('id');
    });
}

在Laravel迁移中是否有正确的方法进行此切换?

感谢您的帮助! :)

1 个答案:

答案 0 :(得分:1)

PRIMARY更改为users_id_primary并将操作分开:

Schema::table('users', function (Blueprint $table) {
    $table->dropPrimary('users_id_primary');
    $table->dropColumn('id');
)};

Schema::table('users', function (Blueprint $table) {
    $table->uuid('id');
    $table->primary('id');
});