Yii2 Db seeder is a Yii2 adapter for Php db seeder, which is a tool to quickly populate database with fake data.
The preferred way to install this extension is through composer.
$ composer require tebazil/yii2-db-seeder
require section of your
You can quickly seed your database with generated data with something like this:
$seeder = new \tebazil\yii2seeder\Seeder(); $generator = $seeder->getGeneratorConfigurator(); $faker = $generator->getFakerConfigurator(); $seeder->table('article')->columns([ 'id', //automatic pk 'book_id', //automatic fk 'name'=>$faker->firstName, 'content'=>$faker->text ])->rowQuantity(30); $seeder->table('book')->columns([ 'id', 'name'=>$faker->text(20), ])->rowQuantity(30); $seeder->table('category')->columns([ 'id', 'book_id', 'name'=>$faker->text(20), 'type'=>$faker->randomElement(['shop','cv','test']), ])->rowQuantity(30); $seeder->refill();
Please review the Php db seeder for extended documentation on usage.
Yii2 Db Seederyou do not need to provide database configuration by default, it uses
Yii::$app->dbto retrieve connection information. You can optionally provide seeder with a database connection component name. You do that like:
$seeder = new \tebazil\yii2seeder\Seeder('db2');
There. Seeder would be using
You can use standart yii wildcards for prefixed table names, like
yii\db\Migration is used as a database abstraction layer instead of a native database helper. This basically means that you can work with all the databases Yii2 supports.
=> You have project with test data in your database, easier to develop and easier to show to clients what's being happening
db-seederis not bound to them - migrations and seeding are two different instruments. Migrations is a long-term instrument to manipulate database structure with time keeping history, and database seeder is a simple library to keep test data up-to-date. So, when a new migration appears, just fix the console command filling the database to be up-to-date.