首页 文章

如何使用Laravel迁移从列中删除唯一约束?

提问于
浏览
1

我必须使用Laravel迁移从电子邮件列中删除唯一约束 . 这是我的代码:

class AlterEmailToUsers extends Migration
{
/**
 * Run the migrations.
 *
 * @return void
 */
public function up()
{
    Schema::table('users', function (Blueprint $table) {
        $table->string('email')->unique(false)->nullable()->change();
    });
}

/**
 * Reverse the migrations.
 *
 * @return void
 */
public function down()
{
    Schema::table('users', function (Blueprint $table) {
       $table->string('email')->nullable(false)->unique()->change();
    });
}

}

但是当我运行 php artisan migrate 时,我收到以下错误:

SQLSTATE [42000]:语法错误或访问冲突:1061重复键名'users_email_unique'(SQL:alter tableuser添加唯一users_email_uniqueemail))

1 回答

  • 2
    public function up()
     {
       Schema::table('users', function (Blueprint $table) {
        $table->string('email')->unique(false)->nullable()->change();
       });
      }
    

    改成

    $table->dropUnique('users_email_unique');
    

相关问题