ホームページ >PHPフレームワーク >Laravel >Laravel が SQL データを適切に埋める方法

Laravel が SQL データを適切に埋める方法

藏色散人
藏色散人転載
2021-01-26 13:43:382253ブラウズ

次のコラムLaravelチュートリアルでは、Laravelのエレガントな充填を解決するlaravelの方法を紹介します。 SQL データのデータです。困っている友人のお役に立てれば幸いです。

Laravel が SQL データを適切に埋める方法

背景

Laravel 開発プロセス中に、 を通じてデータベース構造に変更が加えられる可能性があることは誰もが知っています。 migration seeder を使用して、データベース実稼働データの完全な事前入力を完了できます。

事前入力されたデータが大量にあり、それが開発プロセス中に生成された場合、手書きの seeder への挿入は硬すぎるように見えるため、コピーして変更する必要がある場合があります。これらの内容:

\DB::table('software_categories')->insert(array(
            0 =>
                array(
                    'id' => 1,
                    'name' => '操作系统',
                    'description' => NULL,
                    'deleted_at' => NULL,
                    'created_at' => '2021-01-19 19:22:31',
                    'updated_at' => '2021-01-19 19:22:36',
                    'parent_id' => NULL,
                    'order' => '0',
                ),
            1 =>
                array(
                    'id' => 2,
                    'name' => '办公应用',
                    'description' => NULL,
                    'deleted_at' => NULL,
                    'created_at' => '2021-01-19 19:22:53',
                    'updated_at' => '2021-01-19 19:22:53',
                    'parent_id' => NULL,
                    'order' => '0',
                ),
            2 =>
                array(
                    'id' => 3,
                    'name' => '图像处理',
                    'description' => NULL,
                    'deleted_at' => NULL,
                    'created_at' => '2021-01-19 19:22:59',
                    'updated_at' => '2021-01-19 19:22:59',
                    'parent_id' => NULL,
                    'order' => '0',
                ),
            3 =>
                array(
                    'id' => 4,
                    'name' => '网络工具',
                    'description' => NULL,
                    'deleted_at' => NULL,
                    'created_at' => '2021-01-19 19:23:04',
                    'updated_at' => '2021-01-19 19:23:10',
                    'parent_id' => NULL,
                    'order' => '0',
                ),
            4 =>
                array(
                    'id' => 5,
                    'name' => '影音工具',
                    'description' => NULL,
                    'deleted_at' => NULL,
                    'created_at' => '2021-01-19 19:23:35',
                    'updated_at' => '2021-01-19 19:23:35',
                    'parent_id' => NULL,
                    'order' => '0',
                ),
            5 =>
                array(
                    'id' => 6,
                    'name' => '系统工具',
                    'description' => NULL,
                    'deleted_at' => NULL,
                    'created_at' => '2021-01-19 19:23:47',
                    'updated_at' => '2021-01-19 19:23:47',
                    'parent_id' => NULL,
                    'order' => '0',
                ),
            6 =>
                array(
                    'id' => 7,
                    'name' => '设计工具',
                    'description' => NULL,
                    'deleted_at' => NULL,
                    'created_at' => '2021-01-19 19:24:05',
                    'updated_at' => '2021-01-19 19:24:05',
                    'parent_id' => NULL,
                    'order' => '0',
                ),
        ));

十分なデータがあれば、それをバッチ処理する良い方法が見つかると思います。

オプション

1 つは、開発プロセス中にすべての事前入力データが処理された後、データベースから .sql ファイルをエクスポートできます。次に、それをスクリプトとして運用環境にインポートします。

2 番目に、データベース内の既存のデータを構造化し、seeder ファイルを生成します。このファイルは、artisan db:seed コマンドを使用して入力できます。

両方の方法が利用可能です。

SQL ファイルは直接インポートされます

HeidiSQL などのデータベース管理ツールを使用して、必要なデータベース テーブルを .sql ファイルにエクスポートします。

Laravel では、コマンドを記述し、ロジックに次のコードを記述することができます:

DB::unprepared(file_get_contents('path/data.sql'));

Seeder fills

This これは私の意見では最良の解決策です。結局のところ、Laravel は完全なデータベース移行と充填メカニズムを提供しているので、それを活用してみてはいかがでしょうか?

composer require orangehill/iseed -vvv インストール パッケージを実行します。

php 職人 iseed table_name を実行すると、テーブル名に対応する seeder ファイルが database/seeders ディレクトリに自動的に作成されます。

次に、artisan db:seed --class=YourTableSeeder を使用して塗りつぶしを指定します。

以上がLaravel が SQL データを適切に埋める方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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