Symfony1 Symfony项目,模型存储在多个数据库中

Symfony1 Symfony项目,模型存储在多个数据库中,symfony1,symfony-1.4,propel,multiple-databases,Symfony1,Symfony 1.4,Propel,Multiple Databases,我正在编写Symfony项目(使用Symfony 1.4版本,以Propel作为其ORM),其中一些数据存储在MySQL数据库中,另一些数据存储在PostgreSQL数据库的另一台服务器上 更确切地说,我希望在MySQL数据库中同时存储一些模型,在PostgreSQL数据库中同时存储其他模型,并且无缝地进行存储,而无需显式的数据库切换(我的意思是,Prope将使用适当的数据库连接和SQL方言来检索/存储数据)。MySQL部分的模型与PostgreSQL没有关系 可能吗?如果是,我还想知道如何设置

我正在编写Symfony项目(使用Symfony 1.4版本,以Propel作为其ORM),其中一些数据存储在MySQL数据库中,另一些数据存储在PostgreSQL数据库的另一台服务器上

更确切地说,我希望在MySQL数据库中同时存储一些模型,在PostgreSQL数据库中同时存储其他模型,并且无缝地进行存储,而无需显式的数据库切换(我的意思是,Prope将使用适当的数据库连接和SQL方言来检索/存储数据)。MySQL部分的模型与PostgreSQL没有关系

可能吗?如果是,我还想知道如何设置开发环境(我想在开发和生产环境中访问不同的MySQL/PostgreSQL数据库)

UPD:我发现了一个关于这个问题的问题:但我必须检查它是否适用于Symfony的最新版本。

我相信你可以

谷歌对此有很多结果,试试看


这是基于一个旧版本的spreep/symfony,但从快速查看,我相信它仍然有效。另外,最近有评论建议它可以工作。

我每天都和symfony一起工作,事实上你可以有两个数据库来存储模型中不相关的部分。您需要在database.yml中设置这两个连接(我不熟悉posgress,因此您必须了解如何正确设置):

完成后,我们应该开始使用schema.yml文件(因为您将使用两个数据库,我建议您有两个文件,一个用于mysql,另一个用于postgres数据库):

mysql_schema.yml文件:

//This is how you tell witch connection you are using for this tables
connection: mysql_connection 

classes:
  CLassName:
    tableName: table_name
    columns:
      id:
      name:
        type: varchar(255)
        required: true
  [...]
connection:  postgress_connection
    classes:
      ClassName:
        tableName: table_name
        columns:
          id:
          name:
            type: varchar(255)
            required: true
      [...]
postgres_schema.yml文件:

//This is how you tell witch connection you are using for this tables
connection: mysql_connection 

classes:
  CLassName:
    tableName: table_name
    columns:
      id:
      name:
        type: varchar(255)
        required: true
  [...]
connection:  postgress_connection
    classes:
      ClassName:
        tableName: table_name
        columns:
          id:
          name:
            type: varchar(255)
            required: true
      [...]
一旦您完成了模式文件的设置,您就可以开始了,创建所有类并开始享受乐趣。希望这有帮助