如何从旧数据库中选择数据并将其插入到新的理论迁移中?

问题描述 投票:0回答:1

我为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;

该怎么做?

zend-framework doctrine-orm doctrine zend-framework3 doctrine-migrations
1个回答
0
投票

如果我理解正确,您想对两个数据库连接使用“ Doctrine迁移”:orm_defaultorm_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

© www.soinside.com 2019 - 2024. All rights reserved.