ais*_*far 10 database-migration laravel 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();
});
}
Run Code Online (Sandbox Code Playgroud)
}
但是当我运行时php artisan migrate,出现以下错误:
SQLSTATE[42000]:语法错误或访问冲突:1061 重复键名“users_email_unique”(SQL:alter table `users` add unique `users_email_unique`(`email`))
Kul*_*hra 15
public function up()
{
Schema::table('users', function (Blueprint $table) {
$table->string('email')->unique(false)->nullable()->change();
});
}
Run Code Online (Sandbox Code Playgroud)
改成
$table->dropUnique('users_email_unique');
Run Code Online (Sandbox Code Playgroud)
提供的解决方案工作得很好,但这里只有一个小技巧:
您可以像这样传递一个带有列名的数组:
$table->dropUnique(['email']);
Run Code Online (Sandbox Code Playgroud)
在这种情况下,Laravel 将根据其约定自动生成索引名称
| 归档时间: |
|
| 查看次数: |
12252 次 |
| 最近记录: |