OFBizアプリケーションのさまざまな部分をさまざまなデータベースに接続できますか?例:-PartyManagement=>データベース1に接続します-CatalogManagement=>データベース2に接続します-Ofbizアプリケーションの同じインスタンスで動作します。私の計画は、OFbizでテナントを作成し、OFBizのさまざまな部分をテナントに接続し、他の部分をデフォルト/元のOFBizデータベースに接続することです。
1 に答える
短い答えははい、できます。長い答えは、エンティティ レベルで既存のアプリ間の依存関係があるため、おそらくそうしたくないということです。
まず、すべてがどのように組み合わされるかを理解する必要があります。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 とテナント グループを見てください。
新しいコンポーネントを作成している場合、または特別な目的のフォルダー内のコンポーネントに対してそれを行いたい場合は、上記の手順を実行して別のデータベースにエンティティを含めることができます。フレームワークまたはアプリケーション フォルダーの既存のコンポーネント (前述のコンテンツ コンポーネントなど) に対してこれを行う場合、コンポーネントには依存関係 (エンティティ関係) があり、一部のエンティティを別のデータベースに移動するとそれが壊れることに気付くでしょう。