在基于模式的多租户应用程序中,通常有一个具有多个模式的数据库。一种模式是存储通用应用程序数据的主要模式,一种用于应用程序的每个租户。每次有新客户注册到系统时,都会在数据库中自动创建一个新的隔离模式。这意味着,模式是在运行时创建的,并且事先不知道。客户的模式是根据客户的域命名的。当请求进入系统时,用户将得到验证并使用主模式上的数据选择模式。然后大多数/所有后续数据库操作都转到租户特定的模式。如您所见,我们要使用的模式仅在运行时才知道。
如何在运行时选择模式?我们正在使用 postgres 连接器。我们应该能够在运行时切换模式。
另一个问题是如何为不同的租户运行迁移?
db-schema 需要以请求范围的方式设置,以避免为可能属于其他客户的其他请求设置架构。为整个连接设置架构不是一个选项。
只想知道JSON类型是否也属于交易.例如,如果我已经启动了为列JSON类型和其他类型插入数据的事务,并且如果发生错误,它是否也会回滚json的东西?