Have your database populated with fake data in no time!
- Very easy to use!
- Use time-tested fzaninotto/faker generators
- Easily map generators to database columns
- Supports related data
- Two ways of seeding a table: generators or plain array
- Ability to use your own generators
- Friendly autocomplete in modern IDE's (tested in phpstorm)
This "extension" is basically an adapter to the main framework-agnostic php database seeder library.
Installation ¶
The preferred way to install this extension is through composer.
Either run
composer require tebazil/yii2-db-seeder
or add
"tebazil/yii2-db-seeder": "*"
to the require
section of your composer.json
file.
Quick start ¶
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.
Differences from original library ¶
- With
Yii2 Db Seeder
you do not need to provide database configuration by default, it usesYii::$app->db
to 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 Yii::$app->db2
now.
You can use standart yii wildcards for prefixed table names, like
{{%table_name}}
.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.
If you have any questions, please ask in the forum instead.
Signup or Login in order to comment.