/var/www/vhosts/ihelp.ro/_OLD/vendor/robmorgan/phinx/docs/ja
NameSizeModeActions
commands.rst134060644editdlrm
conf.py2610644editdlrm
configuration.rst115410644editdlrm
contents.rst1410644editdlrm
index.rst31370644editdlrm
migrations.rst389620644editdlrm
seeding.rst69920644editdlrm
Edit: /var/www/vhosts/ihelp.ro/_OLD/vendor/robmorgan/phinx/docs/ja/seeding.rst (6992B)
.. index:: single: Database Seeding データベースの初期データ投入 ============================ バージョン0.5.0 では、Phinx はデータベースにテストデータをシードするためのサポートを導入しました。 シードクラスは、作成済みのデータをデータベースに簡単に投入するための優れた方法です。 デフォルトでは ``seeds`` ディレクトリーに保存されます。 ただし、このパスは設定ファイルで変更できます。 .. note:: データベースのシードは完全にオプションで、 Phinx はデフォルトで ``seeds`` ディレクトリーを作成しません。 シードクラスの新規作成 ---------------------- Phinx には、新しいシードクラスを簡単に生成するコマンドが含まれています。 .. code-block:: bash $ php vendor/bin/phinx seed:create UserSeeder 複数のシードのパスを指定した場合は、新しいシードクラスを作成するパスを選択するように求められます。 以下は、スケルトンテンプレートを元にしています。 :: 'foo', 'created' => date('Y-m-d H:i:s'), ], [ 'body' => 'bar', 'created' => date('Y-m-d H:i:s'), ] ]; $posts = $this->table('posts'); $posts->insert($data) ->save(); } } .. note:: ``save()`` メソッドを呼び出して、データをテーブルにコミットする必要があります。 Phinx はデータをバッファリングします。 Faker ライブラリーとの統合 ~~~~~~~~~~~~~~~~~~~~~~~~~~ シードクラスですばらしい `Faker ライブラリー `_ を使うのは簡単です。Composer を使用してインストールするだけです。 .. code-block:: bash $ composer require fzaninotto/faker そして、シードクラスの中で、それを使用してください。 :: $faker->userName, 'password' => sha1($faker->password), 'password_salt' => sha1('foo'), 'email' => $faker->email, 'first_name' => $faker->firstName, 'last_name' => $faker->lastName, 'created' => date('Y-m-d H:i:s'), ]; } $this->insert('users', $data); } } テーブルのデータ消去 -------------------- データを挿入することに加えて、Phinx は SQL の ``TRUNCATE`` コマンドを使って テーブルを空にすることを容易にします。 :: 'foo', 'created' => date('Y-m-d H:i:s'), ], [ 'body' => 'bar', 'created' => date('Y-m-d H:i:s'), ] ]; $posts = $this->table('posts'); $posts->insert($data) ->save(); // テーブルを空にします $posts->truncate(); } } .. note:: SQLite は ``TRUNCATE`` コマンドをネイティブにサポートしていないので、 ``DELETE FROM`` が使用されています。テーブルのデータ消去後、 ``VACUUM`` コマンドを呼び出すことをお勧めします。 Phinx はこれを自動的には行いません。 シードクラスの実行 ------------------ これは簡単な部分です。データベースをシードするには、 ``seed:run`` コマンドを使います。 .. code-block:: bash $ php vendor/bin/phinx seed:run デフォルトでは、Phinx は利用可能なすべてのシードクラスを実行します。 特定のクラスを実行したい場合は、 ``-s`` パラメーターを使ってそのクラスの名前を渡します。 .. code-block:: bash $ php vendor/bin/phinx seed:run -s UserSeeder 複数のシーダーを実行することもできます。 .. code-block:: bash $ php vendor/bin/phinx seed:run -s UserSeeder -s PermissionSeeder -s LogSeeder ``-v`` パラメーターを使用して、より詳細な出力を表示することもできます。 .. code-block:: bash $ php vendor/bin/phinx seed:run -v Phinx のシード機能は、テストデータをデータベースに簡単かつ繰り返し挿入するための 簡単なメカニズムを提供します。