在开发和部署之间切换数据库

Switching databases between development and deployment

嗨伙计们, 如何在 yii2-advanced 中将可能的数据库从开发切换到部署! 我使用以下配置文件:

.
.
.
     'db_developpment' => [
            'class' => 'yii\db\Connection',
            'dsn' => 'mysql:host=localhost;dbname=yii2_widget',
            'username' => 'root',
            'password' => '',
            'charset' => 'utf8',
        ],
        'db_deployment' => [
            'class' => 'yii\db\Connection',
            'dsn' => 'mysql:host="http:/tklustig.ddns.net";dbname=yii2_widget',
            'username' => 'my_name',
            'password' => 'my_password',
            'charset' => 'utf8',
        ],
.
.
.

我想,为了区分开发和部署设置,有必要编写一个 IF 语句。 如何正确编写此 IF 语句?

你真的需要同时连接两个数据库吗?它让一切变得更复杂。

首选方法是保留多个环境配置。每个环境都使用它自己的数据库连接设置。

请参阅有关此内容的 Yii 2 Advanced Template Project 文档。

基本上你准备了两种不同的配置:

  • /environments/dev/common/config/main-local.php
  • /environments/prod/common/config/main-local.php

里面有为每个环境配置的 db 组件。部署应用程序时,您 运行 控制台命令 init 选择要初始化的环境,以便将正确的 main-local.php 文件复制到文件夹,现在 db 组件使用基于环境的配置所以你只需使用一个活动连接。