Я следовал инструкциям на этой странице:
https://symfony.com/doc/current/doctrine/multiple_entity_managers.html
И мой файл doctrine.yaml выглядит так:
doctrine:
dbal:
default_connection: one
connections:
one:
# configure these for your database server
url: '%env(DATABASE_ONE_URL)%'
driver: 'pdo_mysql'
server_version: '5.7'
charset: utf8mb4
two:
# configure these for your database server
url: '%env(DATABASE_TWO_URL)%'
driver: 'pdo_mysql'
server_version: '5.7'
charset: utf8mb4
orm:
default_entity_manager: one
entity_managers:
one:
connection: one
mappings:
One:
is_bundle: false
type: annotation
dir: '%kernel.project_dir%/src/Entity/One'
prefix: 'App\Entity\One'
alias: One
two:
connection: two
mappings:
Two:
is_bundle: false
type: annotation
dir: '%kernel.project_dir%/src/Entity/Two'
prefix: 'App\Entity\Two'
alias: Two
У меня есть каталог One и Two внутри моего каталога Entity с простым классом Entity в обоих:
A Человек в Один :
<?php
namespace App\Entity\One;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity
* @ORM\Table(name="person")
*/
class Person
{
/**
* @var int
*
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
* @ORM\Column(type="integer")
*/
private $id;
/**
* @var string
*
* @ORM\Column(type="string")
*/
private $name;
{Getters and setters ...}
}
A Сообщение в Два :
<?php
namespace App\Entity\Two;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity
* @ORM\Table(name="post")
*/
class Post
{
/**
* @var int
*
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
* @ORM\Column(type="integer")
*/
private $id;
/**
* @var string
*
* @ORM\Column(type="string")
*/
private $title;
{Getters and setters ...}
}
Когда я запускаю bin/console doctrine:migrations:diff
и bin/console doctrine:migrations:migrate
, Person добавляется в базу данных One правильно.
Когда я запускаю bin/console doctrine:migrations:diff --em=two
и bin/console doctrine:migrations:migrate --em=two
, выполняется и миграция Person для One , а в базе данных Two имеется Персона и Страница Таблица.
Я не могу понять, где я ошибаюсь с этим