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

时间:2013-09-23 01:09:43

标签: php laravel laravel-4 fixtures seeding

我可能误解了它是如何工作的,但是实现这一目标的最佳方法是什么?我有一些想法,但它看起来很黑。

我有一组样本数据用于测试我的应用程序。这是通过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);

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

还有其他(更好)的方法吗?

1 个答案:

答案 0 :(得分:8)

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

<?php

class DatabaseSeeder extends Seeder {

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

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

}