Управление приложением 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. И это сделано!

Другие вопросы по тегам