1

OFBiz 应用程序的不同部分可以连接到不同的数据库吗?例如: -Party Management => 连接到数据库 1 -Catalog Management => 连接到数据库 2 -在 Ofbiz 应用程序的同一实例中工作。我的计划是在 OFBiz 中创建租户,并使 OFBiz 的不同部分连接到租户,而其他部分连接到默认/原始 OFBiz 数据库。

4

1 回答 1

4

简而言之,是的,你可以,长的答案可能是你不想这样做,因为实体级别的现有应用程序间依赖关系。

首先您必须了解它是如何组合在一起的: Ofbiz 实体通常在 entitymodel.xml 中定义并在 ofbiz-component.xml 中引用 大多数现有组件只有此级别的配置。通过这样的配置,实体属于名为“org.ofbiz”的默认组。然后在 entityengine.xml 中将该组分配给一个数据源:

<group-map group-name="org.ofbiz" datasource-name="localpostgres"/>

这就是将表分配给组的方式,然后将组分配给数据库。

因此,要将组件中的所有实体分配给新数据库,您必须执行以下操作:

  1. 在每个组件中创建一个新的实体组定义并将实体分配给该组:<entity-group group="org.ofbiz.tenant" entity="Tenant"/>

  2. 从 ofbiz-component.xml 引用组定义 <entity-resource type="group" reader-name="main" loader="main" location="entitydef/entitygroup.xml"/>

  3. 在 entityengine.xml 中,将新组分配给不同的数据源: <group-map group-name="org.ofbiz.tenant" datasource-name="localpostgres"/>

例如,看看 olap 和租户组。

如果您正在创建一个新组件,或者如果您想为专用文件夹中的组件执行此操作,您可以执行上述步骤并将您的实体放在单独的数据库中。如果您想对框架或应用程序文件夹中的现有组件(如您提到的内容组件)执行此操作,您会注意到组件具有依赖关系(实体关系),并且将一些实体移动到单独的数据库会破坏这种情况。

于 2013-03-24T12:50:01.323 回答