2017-09-22 5 views
0

Symfony 프로젝트에 4 가지 데이터베이스가 있습니다. 로컬로 데이터베이스는 개별 이름을 가지므로 마이그레이션에서는 따로 구분할 수 있습니다. 올바른 데이터베이스가 마이그레이션되도록 각 테이블의 접두어에 각 마이그레이션의 db_name.table이 붙습니다.데이터베이스 이름을 지정하지 않고 Symfony 마이그레이션으로 여러 데이터베이스 마이그레이션

이제는 (flynn.io를 사용하여) 데이터베이스 이름이 자동으로 생성되는 원격 환경에서이 설정을 원하지만 데이터베이스 이름은 모든 마이그레이션에서 수정되었습니다. db 이름을 읽을 수있는 방법이 있습니까? 환경 변수 또는 유사한 해결책에서? 이 어떻게 든 당신의 필요를 만족하는 경우

답변

0

당신은 DoctrineMigrationsBundle

public function up(Schema $schema) 
{ 
    // ... empty function/ no migrations commands 
} 


public function postUp(Schema $schema) 
{ 

    // get datebase name here, and then pass this database names to another function 
    $converter = $this->container->get('db_names_from_paratmers.yml file'); 
    $this->initDatabase('db1'); 
} 

public function initDatabase($dbname) 
{ 
    $this->addSql('CREATE TABLE '.$dbname.'office (id INT AUTO_INCREMENT NOT NULL, email VARCHAR(255) NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB'); 
} 

참조를 사용할 수 있습니다, 당신은 DB 이름을 찾아 paramters.yml 파일에 임베디드 할 필요가있다.