10

将 PropelORM 设置为与多个数据库一起使用时,我几乎没有问题。我在文档中找不到任何有用的东西。

  1. 从多个数据库生成模式

    我更喜欢先更改数据库架构然后运行

    $ propel-gen . reverse
    

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

  2. 生成类

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

    1. 每个模式都有不同的类前缀?在build.properties我可以设置propel.classPrefix,但这将适用于每个模式。

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

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

4

1 回答 1

1

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

只要您具备以下条件:

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

在您的 blog.schema.xml 中,它应该为您生成一个新目录。但是,如果您让延迟加载这些东西,您是对的,您会遇到冲突,所以我只是手动在我的表中预先添加了一些东西schema.xml(这可能不是处理事情的最有效的方法)。

但是您可以执行以下操作:

  1. 在 blog.schema.xml 中:

     <table name="users" phpName="blogUsers" idMethod="native">
    
  2. 在 platform.schema.xml 中:

     <table name="users" phpName="platformUsers" idMethod="native">
    

这对我来说很好。

于 2013-01-04T01:54:28.277 回答