Symfony 4: как использовать две разные среды на моем локальном сервере - PullRequest
0 голосов
/ 07 июня 2018

Я недавно начал работать с Symfony 4.

Во время разработки мне нравится иметь две разные среды: одну для dev (просмотр сайта с некоторыми фальшивыми данными, имеющимися у нас на приборах) и одну для тестирования, где явыполнить тесты behat, которые сбрасывают базу данных при каждом тесте.

В предыдущих версиях Symfony у меня было две разные базы данных: mysite_dev и mysite_test и два файла параметров (parameters_dev.yml и parameters_test.yml) с правильной конфигурацией базы данных.

Но с Symfony 4и файл конфигурации .env Я не вижу способ сделать это.Я не вижу способа иметь два набора параметров ddbb и иметь возможность запускать доктрину php bin / console: schema: update --env = test или доктрину php bin / console: schema: update --env = dev.

Есть идеи?спасибо!

Ответы [ 2 ]

0 голосов
/ 07 июня 2018

как насчет использования различных переменных 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): ''
0 голосов
/ 07 июня 2018

Это довольно просто: ваши команды могут по-прежнему ссылаться на среду с помощью --env, и каждый раз, когда вам нужно переключиться с одной среды на другую, у вас есть два основных варианта:

  • Изменить вручную .envfile
  • Создайте второй «vhost» (или эквивалентный), где вы можете хранить все переменные, которые вы обычно помещаете в .env, как описано здесь
...