zend-framework - 如何在学说迁移中从旧数据库中选择数据并将其插入新数据库?
问题描述
我将'doctrine/DoctrineORMModule' 模块用于zend 框架3(MVC)。我已经配置了“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 Migrations 用于两个数据库连接: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
推荐阅读
- makefile - 如果目标名称具有目录部分,则生成目录
- reactjs - 图像未在反应中加载
- ruby - 如何在 Ruby 中比较两个 PDF 文件
- javascript - 当超过 80 个字符时如何将 Javascript 变量继续到第二行
- embedded-linux - armv7 架构上 clock_gettime(CLOCK_MONOTONIC, &ts) API 的时间不正确
- vba - 使用 VBA 在 PowerPoint 中更改每张幻灯片上特定形状的字体
- node.js - Mongoose - 如何查询自引用关系?
- python - Python如何检查导入模块中的函数是否可用?
- python - 在 TFRecords 中存储布尔掩码
- jquery - 使用更新在 remoteFunction 后调整不同选择的值