Symfony中如何在第二个数据库创建新实体?
在Symfony的第二个数据库中创建新实体的方法
嘿,既然你已经成功配置了双数据库连接,接下来在第二个customer数据库创建实体其实很简单,分这几步来操作就行:
1. 使用命令行生成实体(推荐)
直接用Doctrine的实体生成命令,指定对应的实体管理器就行,这样生成的实体会自动关联到customer数据库:
php bin/console doctrine:generate:entity --em=customer
跟着命令行向导走,依次设置实体的命名空间、字段名称、字段类型等信息就可以了。
2. 调整实体映射配置(避免冲突)
看你当前的config.yml里,两个实体管理器都映射了整个AppBundle,这样所有实体都会被两个管理器同时管理,容易出问题。建议把不同数据库的实体分开存放,比如在AppBundle下创建两个子目录:Entity/Default(对应默认数据库)和Entity/Customer(对应第二个数据库),然后修改ORM配置:
orm: default_entity_manager: default entity_managers: default: connection: default mappings: AppBundle: dir: Entity/Default prefix: AppBundle\Entity\Default alias: Default customer: connection: customer mappings: AppBundle: dir: Entity/Customer prefix: AppBundle\Entity\Customer alias: Customer
这样不同目录下的实体就会分别对应到各自的数据库,不会互相干扰。
3. 更新第二个数据库的表结构
实体创建好后,执行以下命令来生成/更新customer数据库的表:
php bin/console doctrine:schema:update --force --em=customer
执行完这个命令,你的新实体对应的表就会出现在第二个数据库里啦!
手动创建实体的小提示
如果不想用命令生成,手动写实体类的话,只要把实体文件放在Entity/Customer目录下(对应上面的配置),Doctrine就会把它关联到第二个数据库的实体管理器上。
内容的提问来源于stack exchange,提问作者Andersi
相关产品推荐
相关产品推荐

