【发布时间】:2015-01-15 15:25:18
【问题描述】:
OFBiz 应用程序的不同部分可以连接到不同的数据库吗?例如: - 派对管理 => 连接到数据库 1 -目录管理 => 连接到数据库 2 - 在 Ofbiz 应用程序的同一实例中工作。 我的计划是在 OFBiz 中创建租户,并让 OFBiz 的不同部分连接到租户,而其他部分连接到默认/原始 OFBiz 数据库。
【问题讨论】:
标签: database ofbiz multi-tenant
OFBiz 应用程序的不同部分可以连接到不同的数据库吗?例如: - 派对管理 => 连接到数据库 1 -目录管理 => 连接到数据库 2 - 在 Ofbiz 应用程序的同一实例中工作。 我的计划是在 OFBiz 中创建租户,并让 OFBiz 的不同部分连接到租户,而其他部分连接到默认/原始 OFBiz 数据库。
【问题讨论】:
标签: database ofbiz multi-tenant
简而言之,是的,你可以,长的答案可能是你不想这样做,因为实体级别存在应用间依赖关系。
首先,您必须了解它是如何组合在一起的: Ofbiz 实体通常定义在 entitymodel.xml 中,并在 ofbiz-component.xml 中引用,现有的大部分组件都只有这个级别的配置。通过这样的配置,实体属于名为“org.ofbiz”的默认组。然后在 entityengine.xml 中将该组分配给一个数据源:
<group-map group-name="org.ofbiz" datasource-name="localpostgres"/>
这是如何将表分配给组,然后将组分配给数据库。
因此,要将组件中的所有实体分配给新数据库,您需要做什么:
在每个组件中创建一个新的实体组定义并将实体分配给该组:<entity-group group="org.ofbiz.tenant" entity="Tenant"/>
从 ofbiz-component.xml 引用组定义
<entity-resource type="group" reader-name="main" loader="main" location="entitydef/entitygroup.xml"/>
在 entityengine.xml 中,将新组分配给不同的数据源:
<group-map group-name="org.ofbiz.tenant" datasource-name="localpostgres"/>
例如,看看 olap 和租户组。
如果您正在创建一个新组件或者如果您想为专用文件夹中的组件执行上述操作,您可以执行上述步骤并将您的实体放在一个单独的数据库中。如果您想对框架或应用程序文件夹中的现有组件(例如您提到的内容组件)执行此操作,您会注意到组件具有依赖关系(实体关系),并且将一些实体移动到单独的数据库会破坏这一点。
【讨论】: