Php 如何在多实体管理器中使用make:migration?

Php 如何在多实体管理器中使用make:migration?,php,symfony,doctrine-orm,doctrine,Php,Symfony,Doctrine Orm,Doctrine,我正在使用Symfony 5.1.5 我已经配置了多个实体管理器。这是我的doctor.yaml文件: 原则: dbal: 默认连接:主 连接: 大师: url:“%env(解析:MASTER\u DATABASE\u url)%” 客户: url:“~” orm: 默认\u实体\u管理器:主 自动生成代理类:true 实体管理人员: 大师: 命名策略:条令、规则、命名策略、下划线、数字 连接:主机 映射: 应用程序\主机: 这是错误的吗 类型:注释 目录:'%kernel.project\u

我正在使用Symfony 5.1.5

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

原则:
dbal:
默认连接:主
连接:
大师:
url:“%env(解析:MASTER\u DATABASE\u url)%”
客户:
url:“~”
orm:
默认\u实体\u管理器:主
自动生成代理类:true
实体管理人员:
大师:
命名策略:条令、规则、命名策略、下划线、数字
连接:主机
映射:
应用程序\主机:
这是错误的吗
类型:注释
目录:'%kernel.project\u dir%/src/Entity/Master'
前缀:“App\Entity\Master”
别名:Master
客户:
命名策略:条令、规则、命名策略、下划线、数字
连接:客户端
映射:
应用程序\客户端:
这是错误的吗
类型:注释
目录:'%kernel.project\u dir%/src/Entity/Client'
前缀:“App\Entity\Client”
别名:客户端
这是我的doctrine_migrations.yaml文件:

原则\u迁移:
em:‘大师’
迁移路径:
“doctrinMigrations”:“%kernel.project\u dir%/migrations”
我有两个实体
App\Entity\Master\Subdomain
应用程序\实体\客户端\用户

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

看着 他们以这些命令为例

 php bin/console doctrine:migrations:diff --em=customer
 php bin/console doctrine:migrations:migrate --em=customer
但是,当我尝试运行php bin/console原则:migrations:diff--em=customer时,我会收到一个错误,说“The”--em”选项不存在

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

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

然后运行:

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

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

选项--em已在“条令/迁移”中删除:“^3.0”内建,但将在中重新添加

您可以通过要求lib具有devstability level
composer require条令/迁移:^3立即使用它。1@dev

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

  • 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

谢谢你的回复!我创建了两个单独的配置文件,但出现了一个错误,说迁移配置键“name”不存在,所以我随后尝试运行console命令,但仍然出现相同的错误。。
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