2017-09-22 5 views
0

Symfonyプロジェクトには4つの異なるデータベースがあります。ローカルではそれらのデータベースは個々の名前を持つので、移行ではそれらを区別することができます。私は正しいデータベースが移行されるように各マイグレーションでdb_name.tableを各テーブルの前に付けました。データベース名を指定せずにSymfonyマイグレーションで複数のデータベースを移行する

データベース名が自動的に生成される(flynn.ioを使用して)リモートに設定する必要がありますが、データベース名はすべての移行で固定されています...データベース名を読み取る方法はありますか環境変数または類似の解決策から?これは何とかあなたの必要性を満たしている場合

答えて

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ファイルに埋め込まする必要があります。

関連する問題