Управление приложением Symfony Heroku
У меня есть приложение Symfony на Heroku с аддонами ClearDb. Мне нужно управлять приложением для тестирования и прод. Поэтому мне нужны две базы данных: одна для теста и одна для производства (принцип);
Я попробовал трубопровод Heroku, но когда я продвигаю приложение из staging
в production
, производственное приложение подключено к промежуточной базе данных. Как можно решить? Как тебе это удается?
РЕДАКТИРОВАТЬ Я обнаружил ошибку. Я устанавливаю параметры через
$db = parse_url(getenv('CLEARDB_DATABASE_URL'));
$container->setParameter('database_host', $db['host']);
Из быстрого поиска $container->setParameter я вижу, что это функция Symfony для интерполяции значений в код, однако в своих документах они упоминают следующее предупреждение:
ПРИМЕЧАНИЕ. Вы можете установить параметр только до компиляции контейнера: не во время выполнения. Чтобы узнать больше о компиляции контейнера см. Компиляция контейнера. https://symfony.com/doc/current/service_container/parameters.html
Heroku обрабатывает только приложения Symfony в Prod Env. Таким образом, на сцене приложения также есть среда var как "prod". Как я могу установить параметры для разных env? Или динамически?
Спасибо, АльтерБ
1 ответ
Я решил с переменными среды.
Я изменил в app/config/config.yml это:
doctrine:
dbal:
driver: pdo_mysql
host: '%database_host%'
port: '%database_port%'
dbname: '%database_name%'
user: '%database_user%'
password: '%database_password%'
с этим
doctrine:
dbal:
driver: pdo_mysql
url: '%env(CLEARDB_DATABASE_URL)%'
Приложение получает соединение БД непосредственно от Heroku Env. И это сделано!