Symfony doctrine: миграции с несколькими схемами - PullRequest
0 голосов
/ 24 января 2020

Когда объявляется схема, не совпадающая с именем базы данных соединений, она игнорируется. Например, у меня есть 2 Entity: Users:

namespace App\Entity\DbPublic;

/**
 * Users
 * 
 * @ORM\Table(name="users", schema="public")
 * @ORM\Entity(repositoryClass="App\Repository\DwPublic\UsersRepository")
 */
class Users
{

UsersData:

namespace App\Entity\DbPrivate;

/**
 * UsersData
 * 
 * @ORM\Table(name="users_data", schema="private")
 * @ORM\Entity(repositoryClass="App\Repository\DbPublic\UsersDataRepository")
 */
class Users
{

Когда я пытаюсь выполнить миграцию, не выдает ошибку, но также генерирует скрипт для schema="public" и не для schema="private", как создать сценарий и отношения между двумя таблицами

Мой doctrine.yaml был:

doctrine:
    dbal:
        url: '%env(resolve:DATABASE_URL)%'
    orm:
        auto_generate_proxy_classes: true
        naming_strategy: doctrine.orm.naming_strategy.underscore_number_aware
        auto_mapping: true
        mappings:
            App:
                is_bundle: false
                type: annotation
                dir: '%kernel.project_dir%/src/Entity'
                prefix: 'App\Entity'
                alias: App

и преобразован в:

doctrine:
    dbal:
        default_connection: default
        connections:
            default:
                # configure these for your database server
                driver:    pdo_mysql
                host:      '%env(DATABASE_HOST)%'
                port:      '%env(DATABASE_PORT)%'
                user:      '%env(DATABASE_USER)%'
                password:  '%env(DATABASE_PASS)%'
                dbname:    '%env(DATABASE_NAME_MASTER)%'
                charset:   utf8mb4
            db_public:
                # configure these for your database server
                driver:    pdo_mysql
                host:      '%env(DATABASE_HOST)%'
                port:      '%env(DATABASE_PORT)%'
                user:      '%env(DATABASE_USER)%'
                password:  '%env(DATABASE_PASS)%'
                dbname:    '%env(DATABASE_NAME_MASTER)%'
                charset:   utf8mb4
            db_private:
                # configure these for your database server
                driver:    pdo_mysql
                host:      '%env(DATABASE_HOST)%'
                port:      '%env(DATABASE_PORT)%'
                user:      '%env(DATABASE_USER)%'
                password:  '%env(DATABASE_PASS)%'
                dbname:    '%env(DATABASE_NAME_PRIVATE)%'
                charset:   utf8mb4
    orm:
        default_entity_manager: default
        entity_managers:
            default:
                connection: default
                mappings:
                    App:
                        is_bundle: false
                        type: annotation
                        dir: '%kernel.project_dir%/src/Entity'
                        prefix: 'App\Entity'
                        alias: App
            db_public:
                connection: db_public
                mappings:
                    App:
                        is_bundle: false
                        type: annotation
                        dir: '%kernel.project_dir%/src/Entity'
                        prefix: 'App\Entity'
                        alias: App
            db_private:
                connection: db_private
                mappings:
                    App:
                        is_bundle: false
                        type: annotation
                        dir: '%kernel.project_dir%/src/Entity'
                        prefix: 'App\Entity'
                        alias: App

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