Symfony 4: как использовать две разные среды на моем локальном сервере

Я недавно начал работать с 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

Решение

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

Другие решения

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

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

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector