我的 Symfony 项目中有四个不同的数据库。这些数据库在本地都有各自的名称,因此在迁移中可以将它们区分开来。我在每次迁移中都为每个表添加了 db_name.table 前缀,以便迁移正确的数据库。
现在我想在自动生成数据库名称的远程(使用flynn.io)上进行设置,但数据库名称在所有迁移中都是固定的......有没有办法从环境变量中读取数据库名称或一些类似的解决方案?
我的 Symfony 项目中有四个不同的数据库。这些数据库在本地都有各自的名称,因此在迁移中可以将它们区分开来。我在每次迁移中都为每个表添加了 db_name.table 前缀,以便迁移正确的数据库。
现在我想在自动生成数据库名称的远程(使用flynn.io)上进行设置,但数据库名称在所有迁移中都是固定的......有没有办法从环境变量中读取数据库名称或一些类似的解决方案?
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 文件中。