我目前是多租户应用程序的开发人员,其中有一个" master"数据库,它保存客户的数据,也用作模板,即每个新客户使用不同的名称进行复制,以保存其数据。
在PHP中使用Propel ORM时,模型配置在XML文件中完成,结构如下:
<?xml version="1.0" encoding="UTF-8"?>
<database name="master_db" defaultIdMethod="native">
<!-- here are tables' definitions -->
</database>
是否可以使用相同的XML文件来建模与所有客户的所有连接。数据库,还是我需要一个单独的文件,除数据库名称外完全相同?
由于我的问题被标记为我之前发现的this one的潜在副本,我想解释它为何与众不同:
答案 0 :(得分:1)
您要求的声音是配置文件中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>
...
然后,这将包含database
文件中master-db.xml
文档元素的所有子元素。
只是你要找的混音。
好消息:Propel2现在支持此功能,该功能在以下版本中引入: