我已经开始在Laravel 10上写一个小的个人项目。我遇到的问题如下:
1.我有用户表,其中有外部UUID - role_id。
1.我想在不删除表的情况下向该列添加nullable。
1.我已经创建了新的迁移以便进行更改。
1.安装了doctrine/dbal包,以便能够(理论上)改变列。
1.我在迁移中的代码是:
public function up(): void
{
Schema::table('users', function (Blueprint $table) {
$table->foreignUuid('role_id')->nullable()->constrained('roles')->change();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::table('users', function (Blueprint $table) {
$table->foreignUuid('role_id')->nullable(false)->constrained('roles')->change();
});
}
但是当我运行php artisan migrate时,我得到以下错误- SQLSTATE[42 S21]:列已存在:1060重复的列名'role_id'(Connection:mysql,SQL:alter table users add role_id char(36)null)。
将非常感谢任何建议,如何正确地做修改的列。
1条答案
按热度按时间t2a7ltrp1#
您可以尝试以下操作:
或者使用原始SQL语句,如: