我刚刚开始使用 Propel,我喜欢它,但我有一个关于如何利用多个数据库连接的问题。我知道我可以在我的架构中设置一些内容来连接到多个不同的数据库,但我很好奇如何在代码中处理这个问题。
我遇到的问题是多个数据库,每个数据库的架构都略有不同,没有数据仓库。结果我得到了类似以下内容:
databaseName: westCoastUsers
table: users
column1: email
column2: password
column3: FirstName
databaseName: eastCoastUsers
table: users
column1: email
column2: password
column3: firstName
column4: lastName
现在在 PHP 非 Propel 版本中,我正在手动完成所有这些操作,并根据需要手动切换数据库。我希望能够简化一些事情,并且我很好奇如何对此进行建模。有没有一种方法可以让我拥有像 eastCoastUser 和 westCoastUser 模型这样的模型,每个模型都引用正确的数据库/等等,或者我是否试图插入不支持的东西?
我读到了这个:How to use two database in propel但不确定如何在代码中实际执行它。
感谢您的帮助
最佳答案
在架构文件中,您可以提供代表表的类的名称。它们不必使用与表相同的名称。您可以使用 phpName
来执行此操作表元素上的属性。
例如,您的 schema.xml 可能包含类似的内容
<database name="westCoastUsers">
<table name="users" phpName="WestCoastUser">
...columns here...
</table>
...
</database>
<database name="eastCoastUsers">
<table name="users" phpName="EastCoastUser">
...columns here...
</table>
</database>
(编辑,注意数据库元素上的name="westCoastUser"
指的是数据库的名称,而不是具有相似名称的类)
然后在构建时,propel 将生成 WestCoastUser
, WestCoastUserQuery
, WestCoastUserPeer
, EastCoastUser
, EastCoastUserQuery
并且,EastCoastUserPeer
。每个类都将使用您的架构中定义的数据库进行连接。
关于php - 插入多数据库建模,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11270008/