【问题标题】:How to use different database on development than production如何在开发和生产中使用不同的数据库
【发布时间】:2018-01-10 19:14:44
【问题描述】:

因为我也在我的笔记本和我的 destkop 上开发,所以我想使用一个我可以随时连接的 sql server。

我想在开发环境中连接到这个,而在生产环境中使用另一个。我怎样才能做到这一点?

我在config/database中试过这个:

if('env' == 'development'){ 
    $host = 'mysqlserver.alias.com'; 
    $database = 'mydb'; 
    $username = 'myuname'; 
    $password = 'mypwd'; 
} else { 
    $host = whatsintheenv; 
    $database = whatsintheenv; 
    $username = whatsintheenv; 
    $password = whatsintheenv;    
} 

【问题讨论】:

  • if (App::environment('local')) { ... }

标签: mysql laravel laravel-5 configuration phpunit


【解决方案1】:

这应该由您的环境配置通过.env 文件处理。

如果您还没有.env 文件,请复制.env.example。在那里,您会找到以下设置:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret

只需修改这些值即可连接到正确的数据库服务器。

.env 文件已从源代码管理中排除,因此您的笔记本和桌面可以在此文件中具有不同的内容。

【讨论】:

    【解决方案2】:

    在 Laravel 中,您可以通过以下方式检查环境:

    if (App::environment('local')) {
      // The environment is local
    }
    
    if (App::environment(['local', 'staging'])) {
       // The environment is either local OR staging...
    }
    

    【讨论】:

      【解决方案3】:

      Laravel 使用 PHP dotenv 库 - https://github.com/vlucas/phpdotenv

      这意味着您需要在每台机器上创建一个.env 文件,并使用您要使用的连接。然后在您的代码中,您可以使用App:environment('ENV_VALUE') 加载这些值。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-11-18
        • 2012-11-05
        • 1970-01-01
        • 1970-01-01
        • 2012-04-15
        • 1970-01-01
        • 1970-01-01
        • 2023-01-26
        相关资源
        最近更新 更多