指定每个实体管理器的迁移目录

问题描述 投票:0回答:1

我有一个使用 symfony 4 的多数据库项目,我想在一个名为 ex 的文件夹中迁移 db1:db1Migrations,对于 db2Migrations 也是如此。

我对这个主题做了一些研究,但我发现的只是关于 symfony2,所以我不知道如何在 symfony 4 上练习,我是 symfony 的新手:)

如果有人可以向我解释它是如何工作的,我将不胜感激!

Symfony2 - 更改迁移目录

使用doctrine2和Symfony2迁移多个数据库

我的教义.yml

 orm:
    default_entity_manager: main
    entity_managers:

        main:
            connection: main
            mappings:
                Main:
                    is_bundle: false
                    type: annotation
                    dir: '%kernel.project_dir%/src/Entity/Main'
                    prefix: 'App\Entity\Main'
                    alias: Main

        dossier:
            connection: dossier
            mappings:
                Dossier:
                    is_bundle: false
                    type: annotation
                    dir: '%kernel.project_dir%/src/Entity/Dossier'
                    prefix: 'App\Entity\Dossier'
                    alias: Dossier
symfony doctrine-migrations
1个回答
1
投票

如果您使用 symfony 的 DoctrineMigrationBundle:文档尝试通过控制台创建迁移:

php bin/console doctrine:migrations:migrate --em=customer

而不是

 php bin/console doctrine:migrations:migrate

这里是如何使用多个实体管理器和连接


编辑:我仍然认为这是正确的答案。如果您使用控制台命令:

php bin/console doctrine:migrations:migrate --em=dossier

它将使用您的 ORM 配置。按照此处的文档只是为了确保您在doctrine_migrations.yaml

中拥有正确的配置
doctrine_migrations:
# List of namespace/path pairs to search for migrations, at least one required
migrations_paths:
    'App\Migrations': '%kernel.project_dir%/src/App'
    'AnotherApp\Migrations': '/path/to/other/migrations'
    'SomeBundle\Migrations': '@SomeBundle/Migrations'
© www.soinside.com 2019 - 2024. All rights reserved.