tebazil / yii2-db-seeder
PHP 数据库 Seeder 库的 Yii2 适配器
0.0.0
2015-10-11 21:52 UTC
Requires
This package is not auto-updated.
Last update: 2024-09-14 17:43:01 UTC
README
Yii2 Db Seeder 是 Php db seeder 的 Yii2 适配器,后者是一个用于快速用假数据填充数据库的工具。
安装
安装此扩展的首选方式是通过 composer。
运行
$ composer require tebazil/yii2-db-seeder
或添加
"tebazil/yii2-db-seeder": "*"
到您的 composer.json
文件的 require
部分。
快速开始
您可以使用类似以下内容快速用生成的数据填充数据库
$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();
请查阅 Php db seeder 以获取关于使用的扩展文档。
与原始库的不同之处
- 使用
Yii2 Db Seeder
,默认情况下您不需要提供数据库配置,它使用Yii::$app->db
来检索连接信息。您可以选择性地为 Seeder 提供数据库连接组件名称。您这样做:
$seeder = new \tebazil\yii2seeder\Seeder('db2');
现在,Seeder 将使用 Yii::$app->db2
。
-
您可以使用标准的 yii 通配符用于前缀表名,如
{{%table_name}}
。 -
yii\db\Migration
被用作数据库抽象层,而不是原生数据库助手。这意味着您可以与 Yii2 支持的所有数据库一起工作。
最佳使用实践
- 创建您项目的数据库,使用 gii 生成一些模型和 crud。
- 创建一个控制台应用程序控制器,用于填充测试数据的操作。
- 在需要时运行它
=> 您的数据库中有测试数据的项目,更容易开发和向客户展示正在发生的事情
- 如果您使用迁移,不要混淆迁移保留项目历史的事实,以及
db-seeder
并未与它们绑定 - 迁移和播种是两种不同的工具。迁移是一个长期工具,用于随着时间的推移操作数据库结构并保留历史记录,而数据库播种是一个简单的库,用于保持测试数据最新。因此,当出现新的迁移时,只需修复填充数据库的控制台命令以保持最新即可。 - 在项目开发早期阶段,每次提交时运行此工具很有用,紧随迁移应用之后立即发生
- 在项目开发的后期阶段,持续的测试数据填充可能会破坏测试,因此建议手动填充并且只填充所需的表(通常是新创建的表 - 以测试新事物)