Symfony 4:如何在我的本地服务器中使用两个不同的环境

时间:2018-06-07 06:26:15

标签: php symfony development-environment

我最近开始使用Symfony 4.

在开发过程中,我喜欢有两种不同的环境:一种用于开发(使用我们在固定装置上的一些假数据浏览网站),另一种用于测试我在哪里执行behat测试,在每次测试时重置数据库。

在symfony的早期版本中,我只有两个不同的数据库:mysite_dev和mysite_test以及两个具有正确数据库配置的参数文件(parameters_dev.yml和parameters_test.yml)。

但是使用Symfony 4和.env配置文件,我看不到这样做的方法。我没有看到任何方式有两组ddbb参数,并能够运行php bin / console doctrine:schema:update --env = test或php bin / console doctrine:schema:update --env = dev。< / p>

有什么想法吗?谢谢!

2 个答案:

答案 0 :(得分:2)

如何在配置中使用不同的url变量?

# config/packages/dev/doctrine.yaml
doctrine:
    dbal:
        url: '%env(resolve:DATABASE_URL_DEV)%'

# config/packages/test/doctrine.yaml
doctrine:
    dbal:
        url: '%env(resolve:DATABASE_URL_TEST)%'

还会从默认配置文件

中考虑此注释
parameters:
    # Adds a fallback DATABASE_URL if the env var is not set.
    # This allows you to run cache:warmup even if your
    # environment variables are not available yet.
    # You should not need to change this value.
    env(DATABASE_URL): ''

答案 1 :(得分:0)

这很简单:您的命令仍然可以引用--env的环境,每当您需要从一个环境切换到另一个环境时,您基本上有两个选择:

  • 手动更改.env文件
  • 创建第二个“vhost”(或等效的),您可以按照here
  • 的描述存储您通常放入.env的所有变量