2017-11-27 5 views
0

私はClearDbアドオンを使ってHeroku上にSymfonyアプリケーションを公開しました。私はテストのためにアプリを管理する必要があります。だから私は2つのデータベースが必要です:テスト用と生産用(原則)。Symfony Appを管理するHeroku

私はHeroku Pipelineを試しましたが、stagingからproductionにアプリを昇格させると、プロダクションアプリはステージングdbに接続されます。どのように解決できますか? あなたはそれをどのように管理していますか?

EDIT 私は間違いを発見しました。

:私は、しかし、彼らは彼らのドキュメントで次の警告に言及し、私はこれはコードに値を補間するためにsymfonyの機能であることがわかります$、コンテナ> setParameterを使用のための迅速な検索から

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

を経由してパラメータを設定します

注:コンテナがコンパイルされる前にパラメータを設定することができます: 実行時ではありません。コンテナのコンパイルの詳細については、 コンテナのコンパイルを参照してください。 https://symfony.com/doc/current/service_container/parameters.html#getting-and-setting-container-parameters-in-php

herokuはprod envのsymfonyアプリケーションのみを処理します。したがって、ステージアプリケーションには環境変数「prod」もあります。どのようにして異なるenvのパラメータを設定できますか?または動的に?

おかげで、私は環境変数を用いて解決しました

答えて

0

AlterB。アプリはHerokuののEnvから直接DB接続を取得すること

doctrine: 
    dbal: 
     driver: pdo_mysql 
     url: '%env(CLEARDB_DATABASE_URL)%' 

doctrine: 
    dbal: 
     driver: pdo_mysql 
     host: '%database_host%' 
     port: '%database_port%' 
     dbname: '%database_name%' 
     user: '%database_user%' 
     password: '%database_password%' 

た:

は私がアプリ/設定/ config.ymlこれに変更しました。そしてそれは終わった!

関連する問題