0

我可以以某种方式将我的数据库配置放在 config/packages/test/ 的配置文件中吗?

我想在我的开发 PC 上运行我的测试并并行进行开发工作。在 Symfony 3 中,我有 2 个配置文件

config_test.yaml 和 config_dev.yaml

我可以在其中放置 2 个不同的数据库连接。现在数据库连接在.env文件中,所以我不能有 2 个。

我还需要分别运行我的固定装置和数据库助手以及 2 个数据库(开发和测试):

php bin/console doctrine:schema:update --force --env=dev
php bin/console doctrine:fixtures:load --no-interaction --env=dev
4

1 回答 1

0

解决方案是从 .env 文件中删除数据库连接并将其再次移动到单独的配置文件中:

配置/包/开发/doctrine.yaml:

parameters:
    DATABASE_URL: 'mysql://root@localhost:3306/database'

和 config/packages/ test / doctrine.yaml:

parameters:
    DATABASE_URL: 'mysql://root@localhost:3306/database_test'

在主要的学说配置文件 config/packages/doctrine.yaml 中:

doctrine:
    dbal:
        url: '%DATABASE_URL%'

也在 phpunit.xml.dist 中:

<env name="DATABASE_URL" value="mysql://root@localhost:3306/database_test" />

现在您可以在同一系统上拥有测试和开发环境,并且您的数据库不会被测试数据污染,您可以使用以下命令更新数据库:

php bin/console doctrine:schema:update --force --env=dev
php bin/console doctrine:schema:update --force --env=test
于 2018-05-24T15:00:23.943 回答