我将PropelORM设置为使用多个数据库时遇到的问题很少。我在文档中找不到任何有用的东西。
从多个数据库生成架构
我更喜欢先对数据库模式进行更改,然后再运行
$ propel-gen . reverse
获取 schema.xml 。如果我的系统包含多个数据库怎么办?它可以生成多个模式吗?我知道必须创建文档 buildtime-conf.xml ,但它对我没有任何作用。
生成类
假设我创建了不同的模式 blog.schema.xml 和 platform.schema.xml 。有可能:
每个架构都有不同的类前缀?在 build.properties 中,我可以设置propel.classPrefix
,但这对每个模式都是全局的。
每个架构都有不同的项目名称?再次在 build.properties 中,我可以设置propel.project
,这将在classes目录中创建某个目录。现在所有课程都会去同一个地方。如果我在两个模式中使用相同的表名,则一个类将覆盖另一个类。
我可以自己解决的问题是为某个数据库设置2个不同的目录,但是我更喜欢更优雅的解决方案。
答案 0 :(得分:1)
您可以发布架构中的<database>
行吗?
只要你有以下内容:
<database package="blog" name="blog" defaultIdMethod="native">
在blog.schema.xml中,它应该为您生成一个新目录。如果你推动懒惰加载那些,但你是对的,你会发生碰撞,所以我只是在schema.xml
(这可能不是处理事情的最有效的事情)手动预先填写我的表格
但你可以这样做:
:
<table name="users" phpName="blogUsers" idMethod="native">
:
<table name="users" phpName="platformUsers" idMethod="native">
这对我来说很好。