ホームページ >PHPフレームワーク >Laravel >穴を避けてください! Laravelデータベース移行機能の落とし穴

穴を避けてください! Laravelデータベース移行機能の落とし穴

藏色散人
藏色散人転載
2021-06-11 11:51:402161ブラウズ

次のチュートリアルコラムでは、Laravel のデータベース移行機能の落とし穴を紹介しますので、必要としている友人の役に立てば幸いです。 Laravel データベース移行機能の落とし穴を覚えておいてください

Laravel 8
  • 必須 Laravel データベース移行機能、私は強迫性障害のある乙女座なので、ファイルに自分で名前を付けるのが好きです。例:
##しかし、移行エラーを実行すると:

穴を避けてください! Laravelデータベース移行機能の落とし穴

  • #数ラウンドの試行の後、
Laravel

## が見つかりました。 # 移行ファイルのファイル名の命名形式穴を避けてください! Laravelデータベース移行機能の落とし穴 解析が固定されているため、そのスタイルに従ってファイル名を正確に記述すると、正常に実行されます

  • #もちろんクラス名も統一する必要があります:

穴を避けてください! Laravelデータベース移行機能の落とし穴

    不満の点は次のとおりです:
  • ドキュメントには言及されていませんファイル名の命名スタイルの必須要件
  • したがって、今日この落とし穴を記録する

は、フレームワークのもう 1 つの落とし穴または欠点であると思われます。つまり、テーブル構造 穴を避けてください! Laravelデータベース移行機能の落とし穴 を継続的に統合することができません

たとえば、今日、特定のテーブルにフィールドを追加する必要があります。しかし、そのテーブルはこの時点で移行されているため、
    同じ移行ファイルを再度実行する方法はなく、新しい移行ファイルを作成する必要があります
  • もちろん、これがロールバックを容易にするためであることも理解していますが、私の要件は、新しい関数のフィールドを継続的に追加するのにロールバックは必要ないため、私の 解決策は、
  • migrations
  • このテーブルをクリアすることですこのテーブルは、それを繰り返すことができるかどうかを制御するため、毎回同じ移行ファイルが実行される場合、コードは次のとおりです。
    trait Trait_Migrate
    {
        /**
         * @desc 数据表:初始化
         * @return Void
         */
        static public function CI_Table_Structure() : Void
        {
            # 清空记录表以保证能持续迁移
            DB::table( 'migrations' ) -> truncate();
            # 执行迁移
            Artisan::call( 'migrate --force --path=/database/migrations/' . SELF::$CI_File );
        }
    
    }
    一般的に、次のようにするとスムーズに進みます。フレームワークのルールは完全に文書化されています。しかし、プロジェクトを実行する場合、フレームワークのデフォルトの機能ではニーズを満たすことができません。状況はごく普通のことです。
  • 関連する推奨事項:
最新の 5 つの Laravel ビデオ チュートリアル

以上が穴を避けてください! Laravelデータベース移行機能の落とし穴の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はsegmentfault.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。