Управление приложением 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#getting-and-setting-container-parameters-in-php

Heroku обрабатывает только приложения Symfony в prod env. Таким образом, сценическое приложение также имеет переменную среды как «prod». Как я могу установить параметры для разных env? Или динамически?

Спасибо, АльтерБ


person Stek    schedule 27.11.2017    source источник


Ответы (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. И это сделано!

person Stek    schedule 03.12.2017