0

我的 Symfony 项目中有四个不同的数据库。这些数据库在本地都有各自的名称,因此在迁移中可以将它们区分开来。我在每次迁移中都为每个表添加了 db_name.table 前缀,以便迁移正确的数据库。

现在我想在自动生成数据库名称的远程(使用flynn.io)上进行设置,但数据库名称在所有迁移中都是固定的......有没有办法从环境变量中读取数据库名称或一些类似的解决方案?

4

1 回答 1

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');
}

看,如果这以某种方式满足您的需求,您只需要找到数据库名称并将其嵌入 paramters.yml 文件中。

于 2017-09-22T20:50:21.483 回答