【问题标题】:How to have different seeders per environments in Laravel 4?如何在 Laravel 4 中为每个环境设置不同的播种机?
【发布时间】:2013-07-07 12:36:55
【问题描述】:

我有一个简单的问题,但我没有在网上找到答案。也许我的关键字是假的。

所以我正在 Laravel 4 中开发一个应用程序。我需要根据当前的活动环境为数据库播种不同的值。

例如,如果我在 本地 环境中,我想要测试数据等等。但是当我在 生产 环境中时,我只想拥有一个管理员用户。

Laravel 有内置的解决方案吗?

如果没有,如何检查app/seeds/DatabaseSeeder.php 文件中哪个环境处于活动状态。所以我可以根据环境调用不同的播种机。

【问题讨论】:

    标签: php laravel laravel-4 eloquent seeding


    【解决方案1】:

    没有针对不同环境的内置处理程序。

    解决方案

    在播种器类中,您应该能够使用App::environment() 来检测环境,并在此基础上执行逻辑。

    您可以在每个表播种器类中添加它,DatabaseSeeder.php 文件中:

    public function run()
    {
        Eloquent::unguard();
    
        if( App::environment() === 'development' )
        {
            $this->call('UserTableSeeder');
        } 
    }
    

    或者

    考虑在您的app/config/database.php 文件中添加多个数据库连接。这样,您可以从同一环境中的多个连接填充数据库,而不是按环境播种(并且环境仍然可以更改,但有 2 个或更多单独的数据库连接)。

    如果这适合您的用例,请查看我的answer on multiple database connections here

    【讨论】:

    • 谢谢。 :) 它帮助了我。
    猜你喜欢
    • 2013-01-09
    • 1970-01-01
    • 1970-01-01
    • 2014-07-29
    • 1970-01-01
    • 2014-09-27
    • 1970-01-01
    • 2021-12-20
    • 2013-07-14
    相关资源
    最近更新 更多