有两个实体:Profiles
和Cars
。
实体Profiles
与数据库X
中的表相关,实体Cars
与数据库Y
中的表相关。
Doctrine配置:
doctrine:
dbal:
default_connection: cars
connections:
profiles:
driver: pdo_mysql
host: "%database_host_profiles%"
port: "%database_port_profile%"
dbname: "%database_name_profiles%"
user: "%database_user_profiles%"
password: "%database_password_profile%"
charset: UTF8
cars:
driver: pdo_mysql
host: "%database_host_cars%"
port: "%database_port_cars%"
dbname: "%database_name_cars%"
user: "%database_user_cars%"
password: "%database_password_cars%"
charset: UTF8
orm:
auto_generate_proxy_classes: "%kernel.debug%"
naming_strategy: doctrine.orm.naming_strategy.underscore
connection: cars
auto_mapping: true
当我运行以下命令时,两个实体在同一个数据库(cars)中生成:
app/console doctrine:schema:update
如何在各自的数据库中生成每个实体?
答案 0 :(得分:0)
您必须在orm部分中定义实体管理器,并使用非默认em映射您要管理的包:
orm:
entity_managers:
profiles:
auto_mapping: true
connection: default
cars:
connection: other_connexion
mappings:
AcmeBundle1: ~
AcmeBundle2: ~
答案 1 :(得分:0)
您可以将表名添加到实体映射到的数据库中,就像这样:
<?php
namespace AppBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity
* @ORM\Table(name="Database_Name.Table_Name")
*/
class MyEntity
{
// ...
}