使用Propel ORM的多租户应用程序
问题描述:
我目前是多租户应用程序的开发人员,其中有一个“主”数据库,用于存储客户数据并用作模板,即将其复制每个新客户都有一个不同的名称来保存其数据。使用Propel ORM的多租户应用程序
<?xml version="1.0" encoding="UTF-8"?>
<database name="master_db" defaultIdMethod="native">
<!-- here are tables' definitions -->
</database>
是否有可能使用相同的XML文件,所有的连接模式,所有的客户:
当使用PHP Propel ORM,模型配置结构化这样一个XML文件中完成数据库,还是我需要为每一个单独的文件,除了数据库名称完全相同?
正如我的问题已经被标记为this one一个潜在的重复,我已经发现之前,我想解释一下为什么它是不同的:
- 在这种情况下,数据库数量将随着时间的推移改变,而这个问题正是在这种情况下,固定
- ,所有的数据库,并在每个所有的表,将有完全相同相同的结构
- 我做不要针对每个客户不同的类别,而是一组模型类,这将查询的最后选择的数据库
答
什么你问鸣响XML夹杂一个很好的候选人在配置文件中:
该master-db.xml
文件
<?xml version="1.0" encoding="UTF-8"?>
<database name="master_db" defaultIdMethod="native">
<!-- here are tables' definitions -->
</database>
旁边的propel.xml
文件
<?xml version="1.0" encoding="UTF-8"?>
<config>
<propel>
<database name="blueberryshoechamp_db" defaultIdMethod="native">
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
href="master-db.xml"
xpointer="xpointer(/database/*)"
/>
</database>
...
这将包含master-db.xml
文件中的database
文档元素的所有子元素。
只是你要找的混音。
好消息:
的[推进多个数据库建模]可能的复制(http://*.com/questions:Propel2现在支持这一点,该功能在推出/ 11270008/propel-multiple-database-modeling) – Dez
@Dez我曾经看到过,我认为我的问题不是真的是一个骗局。 –