ホームページ  >  に質問  >  本文

既存のテーブル列に null 許容属性を追加するための Laravel 移行

<p>Laravel 10 で小さな個人プロジェクトを書き始めました。私が遭遇した問題は次のとおりです: </p> <ol> <li>外部キー UUID (role_id) を持つユーザー テーブルがあります。 </li> <li>テーブルを削除せずに、この列に null 許容属性を追加したいと考えています。 </li> <li>変更を加えるために新しい移行を作成しました。 </li> <li>doctrine/dbal パッケージは、(理論的には) 列を変更するためにインストールされます。 </li> <li>移行時のコードは次のとおりです: </li> </ol> <pre class="brush:php;toolbar:false;">パブリック関数 up(): void { Schema::table('users', function (Blueprint $table) { $table->foreignUuid('role_id')->nullable()->constrained('roles')->change(); }); } /*** 移行を逆にします。*/ パブリック関数 down(): void { Schema::table('users', function (Blueprint $table) { $table->foreignUuid('role_id')->nullable(false)->constrained('roles')->change(); }); }</pre> <p>しかし、phpArtisan Migrate を実行すると、次のエラーが表示されます - SQLSTATE[42S21]: Column selected: 1060 Duplicate columns name 'role_id' (Connection: mysql, SQL: alter table users add role_id char(36 )ヌル)。 </p> <p>列を正しく変更する方法についての提案をいただければ幸いです。 </p>
P粉674757114P粉674757114411日前457

全員に返信(1)返信します

  • P粉068486220

    P粉0684862202023-09-06 00:54:03

    次のことを試すことができます:

    リーリー

    または、元の SQL ステートメントを使用することもできます:

    リーリー

    返事
    0
  • キャンセル返事