如何使用带有多个实体管理器的make:迁移



我正在使用Symfony 5.1.5

我配置了多个实体管理器。这是我的doctrine.yaml文件:

doctrine:
dbal:
default_connection: master
connections:
master:
url: '%env(resolve:MASTER_DATABASE_URL)%'
client:
url: '~'
orm:
default_entity_manager: master
auto_generate_proxy_classes: true
entity_managers:
master:
naming_strategy: doctrine.orm.naming_strategy.underscore_number_aware
connection: master
mappings:
AppMaster:
is_bundle: false
type: annotation
dir: '%kernel.project_dir%/src/Entity/Master'
prefix: 'AppEntityMaster'
alias: Master
client: 
naming_strategy: doctrine.orm.naming_strategy.underscore_number_aware
connection: client
mappings:
AppClient:
is_bundle: false
type: annotation
dir: '%kernel.project_dir%/src/Entity/Client'
prefix: 'AppEntityClient'
alias: Client

这是我的doctrine_migrations.yaml文件:

doctrine_migrations:
em: 'master'
migrations_paths:
'DoctrineMigrations': '%kernel.project_dir%/migrations'

我有两个实体
App\Entity\Master\Subdomain
App \Entity\Client\User

当我运行symfony控制台make:migration时,它只适用于Master实体管理器。

正在查看https://symfony.com/doc/current/doctrine/multiple_entity_managers.html他们使用这些命令作为的例子

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

然而,当我尝试运行php-bin/console原则:migrations:diff-em=customer时,我得到一个错误,说";"--em";选项不存在">

我如何让它也为客户端实体管理器生成迁移?

选项--em在"条令/迁移":"3.0〃;buit将被添加回"^3.1〃;。

您现在可以通过要求具有dev稳定性级别composer require doctrine/migrations:^3.1@dev的lib来使用它

之后可以为每个连接定义一个自定义配置文件

  • config/migrations/master.yaml
  • config/migrations/client.yaml

配置文件应该看起来像:

migrations_paths:
'master': '../../src/Migrations/Master'
em: master

您可以运行以下命令:

php bin/console doctrine:migrations:diff --configuration=config/migrations/client.yaml
php bin/console doctrine:migrations:migrate --configuration=config/migrations/client.yaml

选项--em肯定存在。您必须为config/migration/master.yaml和config/migitions/client.yaml 中的每个连接定义一个自定义配置文件

然后运行:

php bin/console doctrine:migrations:diff --em=master --configuration=config/migrations/master.yaml

php bin/console doctrine:migrations:diff --em=client --configuration=config/migrations/client.yaml

配置文件的内容是(config/migrations/master.yaml(:

name: MASTER DATABASE - Doctrine Migrations
migrations_namespace: DoctrineMigrations
table_name: migration_versions
migrations_directory: '../../src/Migrations/Master'

相关内容

  • 没有找到相关文章

最新更新