Cli-Config Assistant -Multiple Entity Manager

I use Doctrine 2.5with Slim 3. I have two managers Entity Manager and Slave. In the Cli-Config.php file, when I create helpers and pass the Managers entities and their connections, as shown below,

$helpers = new Symfony\Component\Console\Helper\HelperSet([
    'db'            => new \Doctrine\DBAL\Tools\Console\Helper\ConnectionHelper($defaultEntityManager->getConnection()),
    'em'            => new \Doctrine\ORM\Tools\Console\Helper\EntityManagerHelper($defaultEntityManager),
    'db_customer'   => new \Doctrine\DBAL\Tools\Console\Helper\ConnectionHelper($customerEntityManager->getConnection()),
    'em_customer'   => new \Doctrine\ORM\Tools\Console\Helper\EntityManagerHelper($customerEntityManager),
]);

return $helpers;

Now in the console when I try to execute a command

php vendor/doctrine/orm/bin/doctrine orm:schema-tool:create 

schema related to EntityManager only gets the generated schema related to . Entity Manager creator is not created. $defaultEntityManager $customerEntityManager

Any idea / suggestions I can try?

+4
source share
1 answer

doctrine`s cli script expects 'em' to be defined in the returned HelperSet. This will be used to create the circuit.

, 2- , :

  • configA
  • configB

2 cli-config.php:

$helpers = new Symfony\Component\Console\Helper\HelperSet([
    'db'            => new \Doctrine\DBAL\Tools\Console\Helper\ConnectionHelper($defaultEntityManager->getConnection()),
    'em'            => new \Doctrine\ORM\Tools\Console\Helper\EntityManagerHelper($defaultEntityManager),
]);

$helpers = new Symfony\Component\Console\Helper\HelperSet([
    'db'   => new \Doctrine\DBAL\Tools\Console\Helper\ConnectionHelper($customerEntityManager->getConnection()),
    'em'   => new \Doctrine\ORM\Tools\Console\Helper\EntityManagerHelper($customerEntityManager),
]);

, :

php ../vendor/doctrine/orm/bin/doctrine orm:schema-tool:create

script

script cli script, , "doctrine.php":

#!/usr/bin/env php
<?php
use Symfony\Component\Console\Helper\HelperSet;
use Doctrine\ORM\Tools\Console\ConsoleRunner;

require_once __DIR__ . '/vendor/autoload.php';

$commands = [];
$helper1 = new Symfony\Component\Console\Helper\HelperSet([
    'db'            => new \Doctrine\DBAL\Tools\Console\Helper\ConnectionHelper($defaultEntityManager->getConnection()),
    'em'            => new \Doctrine\ORM\Tools\Console\Helper\EntityManagerHelper($defaultEntityManager),
]);

$helper2 = new Symfony\Component\Console\Helper\HelperSet([
    'db'   => new \Doctrine\DBAL\Tools\Console\Helper\ConnectionHelper($customerEntityManager->getConnection()),
    'em'   => new \Doctrine\ORM\Tools\Console\Helper\EntityManagerHelper($customerEntityManager),
]);

ConsoleRunner:: run ($ helper1, $commands);  ConsoleRunner:: run ($ helper2, $commands);

:

php doctrine.php orm:schema-tool:create
+1

Source: https://habr.com/ru/post/1695252/


All Articles