2017-11-27 3 views
0

ClearDb addons가있는 Heroku의 Symfony 앱을 사용하고 있습니다. 테스트 및 훔치기 위해 앱을 관리해야합니다. 그래서 저는 두 개의 데이터베이스가 필요합니다 : 하나는 테스트 용이고 다른 하나는 프로덕션 용 (원칙)입니다.Symfony 앱을 관리하십시오 Heroku

나는 Heroku 파이프 라인을 시험해 보았지만, staging에서 production으로 앱을 홍보 할 때 프로덕션 응용 프로그램이 준비 데이터베이스에 연결됩니다. 어떻게 해결할 수 있습니까? 어떻게 관리하나요?

편집 실수를 발견했습니다. 나는 그러나, $ 컨테이너 -> 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의 심포니 응용 프로그램 만 처리합니다. 따라서 무대 앱은 환경 변수를 "자극적"으로 유지합니다. 어떻게하면 다른 env에 대한 매개 변수를 설정할 수 있습니까? 아니면 동적으로?

감사합니다, 나는 환경 변수로 해결 한

답변

0

AlterB. 이 앱은 Heroku가 봉투에서 직접 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이로 변경되었습니다. 그리고 끝났어!

관련 문제