PropelORM v1多个数据库

时间:2012-11-30 15:34:56

标签: php propel

我将PropelORM设置为使用多个数据库时遇到的问题很少。我在文档中找不到任何有用的东西。

  1. 从多个数据库生成架构

    我更喜欢先对数据库模式进行更改,然后再运行

    $ propel-gen . reverse
    

    获取 schema.xml 。如果我的系统包含多个数据库怎么办?它可以生成多个模式吗?我知道必须创建文档 buildtime-conf.xml ,但它对我没有任何作用。

  2. 生成类

    假设我创建了不同的模式 blog.schema.xml platform.schema.xml 。有可能:

    1. 每个架构都有不同的类前缀?在 build.properties 中,我可以设置propel.classPrefix,但这对每个模式都是全局的。

    2. 每个架构都有不同的项目名称?再次在 build.properties 中,我可以设置propel.project,这将在classes目录中创建某个目录。现在所有课程都会去同一个地方。如果我在两个模式中使用相同的表名,则一个类将覆盖另一个类。

  3. 我可以自己解决的问题是为某个数据库设置2个不同的目录,但是我更喜欢更优雅的解决方案。

1 个答案:

答案 0 :(得分:1)

您可以发布架构中的<database>行吗?

只要你有以下内容:

<database package="blog" name="blog" defaultIdMethod="native">

在blog.schema.xml中,它应该为您生成一个新目录。如果你推动懒惰加载那些,但你是对的,你会发生碰撞,所以我只是在schema.xml(这可能不是处理事情的最有效的事情)手动预先填写我的表格

但你可以这样做:

    blog.schema.xml中的
  1.  <table name="users" phpName="blogUsers" idMethod="native">
    
  2. platform.schema.xml中的
  3.  <table name="users" phpName="platformUsers" idMethod="native">
    
  4. 这对我来说很好。