如何在symfony中定义主数据库模式?

时间:2017-10-13 08:16:28

标签: php database postgresql symfony doctrine-orm

主要目的是在一个数据库上使用多个项目实例,这些实例可以访问自己的模式(instance1,instance2等...) 以及一般信息的全局模式(用户,用户组,用户团队)。全局模式通过注释设置

@ORM\Table(name="global.user")

实例架构表具有全局架构表的外键。

我创建了一个更改实体元数据的内核事件监听器:

    $this->em = $this->container->get('doctrine.orm.entity_manager');
    $metadataFactory = $this->em->getMetadataFactory();
    $allEntitiesMetadata = $metadataFactory->getAllMetadata();

    foreach ($allEntitiesMetadata as $entityMetadata) {
        $entityMetadata = $metadataFactory->getMetadataFor($entityMetadata->getName());
        // global entities has global schema defined here
        if (!array_key_exists('schema', $entityMetadata->table)) {
            $entityMetadata->table['schema'] = 'instance1';
        }
    }

也许有一种更简单的方法来为symfony项目定义默认架构?

0 个答案:

没有答案