管理 Symfony 应用程序 Heroku

Manage Symfony App Heroku

我在 Heroku 上有一个带有 ClearDb 插件的 Symfony 应用程序。我需要管理用于测试和生产的应用程序。所以我需要两个数据库:一个用于测试,一个用于生产(原理);

我尝试了 Heroku Pipeline,但是当我将应用程序从 staging 提升到 production 时,生产应用程序连接到暂存数据库。怎么解决? 你如何管理它?

编辑 我发现了错误。我通过

设置参数
$db = parse_url(getenv('CLEARDB_DATABASE_URL'));
$container->setParameter('database_host', $db['host']);

通过快速搜索 $container->setParameter,我可以看到这是一个将值插入代码的 Symfony 功能,但是他们在文档中提到了以下警告:

NOTE: You can only set a parameter before the container is compiled: not at run-time. To learn more about compiling the container see Compiling the Container. https://symfony.com/doc/current/service_container/parameters.html#getting-and-setting-container-parameters-in-php

Heroku 仅处理产品环境中的 symfony 应用程序。所以舞台应用程序也有环境变量 "prod"。如何为不同的环境设置参数?还是动态?

谢谢, 改变B

我已经用环境变量解决了。

我改成了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 获取数据库连接。完成了!