Symfony2多个数据库,为每个表指定数据库

时间:2012-11-12 14:04:06

标签: database symfony connection

问题是我在Symfony中定义了2个+数据库。当我用

更新表模式时
php app/console dotrine:schema:update --force

它使表成为默认数据库。我想指定表所属的数据库。我怎么能这样做?

我正在为实体使用yaml(yml)格式,例如:

Test\ExampleBundle\Entity\TestTable:
    type: entity
    table: test_table
    id:
        id:
            type: integer
            generator:
                strategy: AUTO
    fields:
        name:
            type: string
            length: 255
        sound:
            type: smallint

1 个答案:

答案 0 :(得分:4)

深入了解文档的How to work with Multiple Entity Managers and Connections部分。

Doctrine为您提供了多个连接的能力。您可以轻松添加实体管理器,以根据它们所属的包将实体绑定到不同的预定义连接。

根据文档,您可以将捆绑包绑定到实体管理器,但这里有一个技巧关于如何在同一个捆绑包中使用两个实体管理器,

如果要将实体从一个包绑定到不同的实体管理器,可以添加“dir”属性来定义特定实体文件夹的路径。

实施例,

    entity_managers:
        default:
            connection:       default
            mappings:
                MyBundle:
                    dir:      Path/To/EntityFolder1
        myManager:
            connection:       myConnection
            mappings:
                MyBundle:
                    dir:      Path/To/EntityFolder2

然后,您可以根据绑定的连接将捆绑实体放入正确的文件夹中。