tebazil/yii2-db-seeder

PHP 数据库 Seeder 库的 Yii2 适配器

安装数: 72,095

依赖关系: 0

建议者: 0

安全: 0

星标: 33

关注者: 3

分支: 1

开放问题: 2

类型:yii2-extension

0.0.0 2015-10-11 21:52 UTC

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 并未与它们绑定 - 迁移和播种是两种不同的工具。迁移是一个长期工具,用于随着时间的推移操作数据库结构并保留历史记录,而数据库播种是一个简单的库,用于保持测试数据最新。因此,当出现新的迁移时,只需修复填充数据库的控制台命令以保持最新即可。
  • 在项目开发早期阶段,每次提交时运行此工具很有用,紧随迁移应用之后立即发生
  • 在项目开发的后期阶段,持续的测试数据填充可能会破坏测试,因此建议手动填充并且只填充所需的表(通常是新创建的表 - 以测试新事物)