This seems to be a topic more appropriate to the development mailing list since you're suggesting changes to design.
On Mon, Mar 12, 2018 at 5:09 PM, Shi Jinghai <[email protected]> wrote: > Amazing idea. > > Unfortunately the lovely MariaDB and TiDB doesn't support the pg style schema. > > -----邮件原件----- > 发件人: Rajesh Mallah [mailto:[email protected]] > 发送时间: 2018年3月12日 16:16 > 收件人: [email protected] > 主题: schema support for tenant data sources > > Hi , > > > I felt the need for using schema of existing databases for holding tenant > data. > > Currently the command eg: > > ./gradlew createTenant -PtenantId=tenant001 -PtenantName="My Tenant 001" > -PdomainName=tenant001.example.com > -PtenantReaders=seed,seed-initial,ext > -PdbPlatform=P -PdbIp=127.0.0.1 > -PdbUser=ofb_tenant001 > -PdbPassword=ofbiz@tenant > > > creates following data sources in tenant_data_source table. > > ---------+------------------------------------------------ > tenant_id | tenant001 > entity_group_name | org.apache.ofbiz > jdbc_uri | jdbc:postgresql://127.0.0.1/ofbiz_tenant001 > jdbc_username | ofb_tenant001 > jdbc_password | ofbiz@tenant > -[ RECORD 2 ]---------+------------------------------------------------ > tenant_id | tenant001 > entity_group_name | org.apache.ofbiz.olap > jdbc_uri | jdbc:postgresql://127.0.0.1/ofbizolap_tenant001 > jdbc_username | ofb_tenant001 > jdbc_password | ofbiz@tenant > > ----------------------------------------------------------------- > > I feel IF the command and entity TenantDataSource are extended to allow > specification of *database *and *database-schema * it shall be very useful in > certain use cases. > > > schemas in databases allow a level of compartmentalization between database > and tables . The advantage of having schema over separate databases is that > it allows joining of tables across schemas whereas cross database joins are > not supported well in many databases. > > In current use case I had housed the ofbiz entities in a schema of a database > and utilized the schema-name attribute of <datasource/> element in > entityengine.xml. In the same database other schema was being used to store > non-OFBiz custom entities. > > Since current tenant_data_source does not allows specification of schema > > it shall be difficult to use that dataset as a part of multi-tenant setup. > > Fortunately PostgreSQL supports a feature that shall be the basis of an > work-around to deal with this situation. It allows to set a config parameter > at per user level. > > This feature can be exploited set set the search_path of a given user so that > a user "sees" only that schema in DB. > > given the fact that <datasource/> allows specification of schema and DB in > entityengine.xml i feel it should be possible. > > > regds > mallah.
