Я недавно начал работать с 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.
Есть идеи? Спасибо!
как насчет использования различных переменных 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): ''
Это довольно просто: ваши команды все еще могут ссылаться на среду с --env
и каждый раз, когда вам нужно переключиться с одной среды на другую, у вас есть два варианта:
.env
файл.env
как описано Вот