我已经开始在Laravel 10上编写一个小的个人项目。我遇到的问题如下:
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[42S21]: Column already exists: 1060 Duplicate column name 'role_id' (Connection: mysql, SQL: alter table users add role_id char(36) null)。
非常感谢任何关于如何正确修改列的建议。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
您可以尝试以下操作:
Schema::table('users', function (Blueprint $table) { $table->char('role_id', 36)->nullable()->constrained('roles')->change(); });或者可以使用原始的SQL语句:
DB::statement('ALTER TABLE users MODIFY role_id CHAR(36) NULL'); DB::statement('ALTER TABLE users ADD CONSTRAINT fk_users_role_id FOREIGN KEY (role_id) REFERENCES roles (id)');