1

自動インクリメントされた主キーを使用するように既存のデータベースを更新しようとしています。この DB には、現在、カスタム値を持つクレイジーな名前の PK フィールドがあります。最初に各テーブルをチェックして、最初にautoincフィールドがあるかどうかを確認する必要があります。次に、それを削除して「id」フィールドに置き換えます。

これを移行として実行したいのですが、これまでのところ、最初の列が既に自動インクリメントされているかどうかを識別できないため、既存の PK を削除して置き換えることができます。hasColumn を firstColumn のようなものに置き換えてから getColumnType...

    foreach ($tableNames as $name)
                if (!Schema::hasColumn($name, 'id')) {
                Schema::table($name, function ($table) {
                    $table->dropPrimary();
                    $table->increments('id')->first();
                });
            }
        }
4

1 に答える 1