Как выбрать данные из старой базы данных и вставить их в новую при миграции doctrine? - PullRequest
0 голосов
/ 01 марта 2020

Я использую модуль 'doctrine / DoctrineORMModule' для Zend Framework 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;

Как это сделать?

1 Ответ

1 голос
/ 13 марта 2020

Если я правильно понимаю, вы хотели бы использовать Doctrine Миграции для двух подключений к базе данных: orm_default и orm_old.

Это возможно в Doctrine, но не в Zend Рамочная доктрина ОРММодуль. Это очень скоро упоминается в официальной документации: https://github.com/doctrine/DoctrineORMModule/blob/master/docs/migrations.rst#multiple -migration-configurations

Лучшее, что вы можете сделать, - это использовать два отдельных файла cli-config с одинаковыми подключениями к базе данных, и поместите миграции в две отдельные папки. Затем вы можете использовать стандартные инструменты doctrine CLI (vendor / bin / doctrine migrations: migrate) для запуска миграций для двух соединений.

Добавление этой функции в DoctrineORMModule было запрошено, но никогда реализованы. Вы можете прочитать больше об этом прямо здесь: https://github.com/doctrine/DoctrineORMModule/issues/537

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...