Laravel数据库种子 - 测试数据v样本数据

Ale*_*x C 5 php fixtures seeding laravel laravel-4

我可能误解了它是如何工作的,但是实现这一目标的最佳方法是什么?我有一些想法,但它似乎很hacky.

我有一组样本数据用于测试我的应用程序.这是通过Laravel的内置播种机播种的.这包含示例用户,地址,文档等内容.

我还有一组应该投入生产的默认数据.我目前直接在迁移中添加它.例如,如果我要为account_roles添加表,我可能会在迁移的底部包含以下内容

$account_admin = array('role' => 'Account Administrator', 'flag' => 'ACCOUNT_ADMIN');
$account_owner = array('role' => 'Account Administrator', 'flag' => 'ACCOUNT_OWNER');
DB::table('account_roles')->insert($account_admin);
DB::table('account_roles')->insert($account_owner);
Run Code Online (Sandbox Code Playgroud)

这样,在生产时,我只是迁移数据库以插入任何生产就绪数据库值,并且在暂存/开发时,我可以刷新迁移,然后使用样本数据为数据库设定种子.

有没有其他(更好)的方法来做到这一点?

Lau*_*nce 8

您可以检查播种机文件中的当前环境,并根据需要播种

<?php

class DatabaseSeeder extends Seeder {

    public function run()
    {
            Eloquent::unguard();

            if (App::environment() === 'production')
            {
                $this->call('ProductionSeeder');
            }
            else
            {
                $this->call('StagingSeeder');
            }
    }

}
Run Code Online (Sandbox Code Playgroud)