為現有表格列新增可為空屬性的Laravel遷移
P粉674757114
2023-09-05 12:58:02
<p>我已經開始在Laravel 10上編寫一個小型的個人專案。我遇到的問題如下:</p>
<ol>
<li>我有一個用戶表,其中有一個外鍵UUID - role_id。 </li>
<li>我想在該列上新增nullable屬性,而不需要刪除表。 </li>
<li>我創建了一個新的遷移來進行修改。 </li>
<li>安裝了doctrine/dbal包,以便(理論上)可以更改列。 </li>
<li>我在遷移中的程式碼如下:</li>
</ol>
<pre class="brush:php;toolbar:false;">public function up(): void
{
Schema::table('users', function (Blueprint $table) {
$table->foreignUuid('role_id')->nullable()->constrained('roles')->change();
});
}
/*** 反轉遷移。*/
public function down(): void
{
Schema::table('users', function (Blueprint $table) {
$table->foreignUuid('role_id')->nullable(false)->constrained('roles')->change();
});
}</pre>
<p>但是當我執行php artisan migrate時,我得到了以下錯誤- SQLSTATE[42S21]: Column already exists: 1060 Duplicate column name 'role_id' (Connection: mysql, SQL: alter table idus addole_g ) null)。 </p>
<p>非常感謝任何關於如何正確修改列的建議。 </p>
您可以嘗試以下操作:
或可以使用原始的SQL語句: