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

标签 laravel database-migration laravel-5.5 laravel-5.6

我必须使用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]: Syntax error or access violation: 1061 Duplicate key name 'users_email_unique' (SQL: alter table `users` add unique `users_email_unique`(`email`))

最佳答案

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

改成
$table->dropUnique('users_email_unique');

关于laravel - 如何使用Laravel迁移从列中删除唯一约束?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49811807/

相关文章:

php - 写入 csv 文件。 ' ; ' 下一列不起作用

mysql - talend可以将序列化数据从MYSQL迁移到PostgreSQL

php - SQLSTATE[42P07] : Duplicate table: 7 ERROR: relation "migrations" already exists

laravel - 未从 Laravel HTML Mailable (NON Markdown) 中收到 $message 变量

laravel - 抱歉,无法找到您要查找的页面,且未显示任何错误 : Laravel 5. 5

php - 分形 laravel 变压器中的条件属性

php - Laravel Input::file 返回空数组,而 $_FILES 有数据

laravel - 从laravel 5 中的中间件获取当前路由操作名称

php - sortKeys() 不对集合的键进行排序

android - GreenDao - Android - OnUpgrade 未被调用(加密数据库)