/var/www/vhosts/ihelp.ro/_OLD/vendor/robmorgan/phinx/docs/fr
Edit: /var/www/vhosts/ihelp.ro/_OLD/vendor/robmorgan/phinx/docs/fr/seeding.rst (5737B)
.. 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
it's 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 vendor/bin/phinx seed:create UserSeeder
If you have specified multiple seed paths, you will be asked to select which
path to create the new seed class in.
It is based on a skeleton template::
'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::
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::
$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);
}
}
Truncating Tables
-----------------
In addition to inserting data Phinx makes it trivial to empty your tables using
the SQL ``TRUNCATE`` command::
'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();
// empty the table
$posts->truncate();
}
}
.. note::
SQLite doesn't natively support the ``TRUNCATE`` command so behind the scenes
``DELETE FROM`` is used. It is recommended to call the ``VACUUM`` command
after truncating a table. Phinx does not do this automatically.
Executing Seed Classes
----------------------
This is the easy part. To seed your database, simply use the ``seed:run`` command:
.. code-block:: bash
$ php vendor/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 vendor/bin/phinx seed:run -s UserSeeder
You can also run multiple seeders:
.. code-block:: bash
$ php vendor/bin/phinx seed:run -s UserSeeder -s PermissionSeeder -s LogSeeder
You can also use the ``-v`` parameter for more output verbosity:
.. code-block:: bash
$ php vendor/bin/phinx seed:run -v
The Phinx seed functionality provides a simple mechanism to easily and repeatably
insert test data into your database.