【问题标题】:How can a set PostgreSQL schema on the fly using Doctrine and Symfony?如何使用 Doctrine 和 Symfony 动态设置 PostgreSQL 模式?
【发布时间】:2015-03-13 03:03:54
【问题描述】:

我正在尝试使用 Symfony 2.6 和 PostgreSQL 模式(命名空间)创建一个多租户应用程序。我想知道如何在 pre persist 事件上更改某些实体架构?

我知道可以将架构设置为注解@Table(schema="schema"),但这是静态解决方案,我需要更动态的解决方案!

使用 PostgreSQL 的目的是利用以下模式特性:

CREATE TABLE tenant_1.users (
    # table schema
);

CREATE TABLE tenant_2.users (
    # table schema
);

所以,如果我只想要来自 tenant_2 的用户,我的查询将类似于 SELECT * FROM tenant_2.users;

这样我的数据将被分离,我将只有一个数据库可以连接和维护。

【问题讨论】:

    标签: postgresql symfony doctrine-orm multi-tenant


    【解决方案1】:
    $schema = sprintf('tenant_%d', $id);
    $em->getConnection()->exec('SET search_path TO ' . $schema);
    

    【讨论】:

      猜你喜欢
      • 2016-07-18
      • 2013-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多