我为zend Framework 3(MVC)使用'doctrine / DoctrineORMModule'模块。我已经配置了'orm_default'并且可以配置'orm_old',但是不知道如何在迁移文件中使用'orm_old'。
我可以在迁移文件中执行此操作:
public function up(Schema $schema) : void
{
$sql = "INSERT INTO `some_table` VALUES ('some_value','','',NULL,NULL,'1');";
$this->addSql($sql);
//...
但是总的来说,我需要运行以下内容:
INSERT INTO DB2.T2(id, title, description)
SELECT id, title, description FROM DB1.T1;
该怎么做?
如果我理解正确,您想对两个数据库连接使用“ Doctrine迁移”:orm_default
和orm_old
。
这在Doctrine中是可能的,但Zend Framework DoctrineORMModule则不行。官方文档中很快提到了这一点:https://github.com/doctrine/DoctrineORMModule/blob/master/docs/migrations.rst#multiple-migration-configurations
最好的办法是使用两个具有相同数据库连接的单独的cli-config文件,并将迁移文件放在两个单独的文件夹中。然后,您可以使用“默认”的准则CLI工具(vendor / bin / doctrine migrations:migrate)来为两个连接运行迁移。
有人要求将此功能添加到DoctrineORMModule中,但从未实现。您可以在此处阅读有关此内容的更多信息:https://github.com/doctrine/DoctrineORMModule/issues/537