.. index:: single: Database Seeding Database Seeding ================ In version 0.5.0 Phinx introduced support for seeding your database with test data. Seed classes are a great way to easily fill your database with data after its created. By default they are stored in the `seeds` directory, however this path can be changed in your configuration file. .. note:: Database seeding is entirely optional and Phinx does not create a `seeds` directory by default. Creating a New Seed Class ------------------------- Phinx includes a command to easily generate a new seed class: .. code-block:: bash $ php bin/phinx seed:create UserSeeder The new class will be created in your seeds directory using CamelCase format. It is based on a skeleton template: .. code-block:: php 'foo', 'created' => date('Y-m-d H:i:s'), ), array( 'body' => 'bar', 'created' => date('Y-m-d H:i:s'), ) ); $posts = $this->table('posts'); $posts->insert($data) ->save(); } } .. note:: You must call the `save()` method to commit your data to the table. Phinx will buffer data until you do so. Integrating with the Faker library ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ It's trivial to use the awesome `Faker library `_ in your seed classes. Simply install it using Composer: .. code-block:: bash $ composer require fzaninotto/faker Then use it in your seed classes: .. code-block:: php $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); } } Executing Seed Classes ---------------------- This is the easy part. To seed your database simply use the `seed:run` command: .. code-block:: bash $ php bin/phinx seed:run By default Phinx will execute all available seed classes. If you would like to run a specific class simply pass in the name of it using the `-s` parameter: .. code-block:: bash $ php bin/phinx seed:run -s UserSeeder You can also use the `-v` parameter for more output verbosity: .. code-block:: bash $ php bin/phinx seed:run -v The Phinx seed functionality provides a simple mechanism to easily and repeatably insert test data into your database.