tebazil/yii1-db-seeder

PHP 数据库 Seeder 库的 Yii1 适配器

安装次数: 76,520

依赖者: 1

建议者: 0

安全: 0

星标: 7

关注者: 2

分支: 0

开放问题: 0

类型:yii2-extension

0.0.0 2015-10-16 20:51 UTC

This package is not auto-updated.

Last update: 2024-09-14 18:21:15 UTC


README

Yii2 Db Seeder 是 Php db seeder 的 Yii1 适配器,它是一个用于快速填充数据库假数据的工具。

安装

安装此扩展的首选方式是通过 composer

运行以下命令

$ composer require tebazil/yii1-db-seeder

或添加以下内容到您的 composer.json 文件的 require 部分。

"tebazil/yii1-db-seeder": "*"

快速开始

您可以使用类似以下方法快速使用生成数据填充数据库

$seeder = new \tebazil\yii1seeder\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 以获取更多使用说明。

与原始库的差异

  • Yii1 Db Seeder 中,默认情况下您无需提供数据库配置,它使用 Yii::app()->db 来检索连接信息。您可以可选地向 Seeder 提供一个数据库连接组件名称。这样做
$seeder = new \tebazil\yii1seeder\Seeder('db2');

现在 Seeder 会使用 Yii::app()->db2

  • 您可以使用标准的 Yii 通配符来处理前缀表名,例如 {{table_name}}

  • Yii1 的 Migration 类用作数据库抽象层,而不是本地数据库助手。这基本上意味着您可以与 Yii1 支持的所有数据库一起工作。

最佳使用实践

  • 创建您的项目数据库,使用 gii 生成一些模型和 CRUD。
  • 创建一个控制台应用程序控制器,用于填充测试数据到数据库的动作。
  • 在需要时运行它

=> 您的项目数据库中有测试数据,这使开发更容易,并且更容易向客户展示正在发生的事情

  • 如果您使用迁移,不要混淆迁移保留项目历史记录的事实,以及 db-seeder 与它们无关 - 迁移和播种是两种不同的工具。迁移是一个长期工具,用于随着时间的推移操作数据库结构并保留历史记录,而数据库播种是一个简单的库,用于保持测试数据最新。因此,当出现新的迁移时,只需修复填充数据库的控制台命令以保持最新即可。
  • 在项目开发的早期阶段,当每次提交时运行此工具(在应用迁移后立即运行)非常有用
  • 在项目开发的后期阶段,持续的测试数据填充可能会破坏测试,因此建议手动填充所需表(通常是新创建的表 - 以测试新事物)