Symfony Doctrine мульти-базы данных - PullRequest
0 голосов
/ 03 апреля 2020

Я разрабатываю с Symfony 5.0.5 и Doctrine.

У меня есть 3 Mysql БД.

  1. Приложение BDD
  2. OP2
  3. OP3

Приложение BDD предназначено для хранения параметров пользователей и нескольких параметров. Структура для OP2 и OP3 это то же самое, но не DATA.

Это мой doctrine .yaml conf:

doctrine:
dbal:
    default_connection: app
    connections:
        app:
            url: '%env(resolve:DATABASE_URL)%'
            driver: 'pdo_mysql'
            server_version: '8.0.19'
            charset: utf8mb4
        op2:
            url: '%env(resolve:DATABASE_URL_OP2)%'
            driver: 'pdo_mysql'
            server_version: '8.0.19'
            charset: utf8mb4
        op3:
            url: '%env(resolve:DATABASE_URL_OP3)%'
            driver: 'pdo_mysql'
            server_version: '8.0.19'
            charset: utf8mb4

    # IMPORTANT: You MUST configure your server version,
    # either here or in the DATABASE_URL env var (see .env file)
    #server_version: '5.7'
orm:
    default_entity_manager: app
    entity_managers:
        app:
            connection: app
            mappings:
                Main:
                    is_bundle: false
                    type: annotation
                    dir: '%kernel.project_dir%/src/Entity/App'
                    prefix: 'App\Entity\App'
                    alias: App
        op2:
            connection: op2
            mappings:
                Main:
                    is_bundle: false
                    type: annotation
                    dir: '%kernel.project_dir%/src/Entity'
                    prefix: 'App\Entity'
                    alias: App
        op3:
            connection: op3
            mappings:
                Main:
                    is_bundle: false
                    type: annotation
                    dir: '%kernel.project_dir%/src/Entity'
                    prefix: 'App\Entity'
                    alias: App

Это работает, но не когда я делаю:

$em = $this->getDoctrine()->getManager('op3');
$Customers = $em->getRepository(Subscriber::class)->findBy([], ['username' => 'ASC']);

При этом doctrine берут базу данных 'op2', но не 'op3'.

Все сущности для op2 и op3 - это одни и те же файлы.

Были ли у вас Любые идеи ? Спасибо

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