2011-06-03 82 views
2

我正在編寫Symfony項目(使用symfony 1.4版本,Propel作爲其ORM),其中一些數據存儲在MySQL數據庫中,另一些數據存儲在PostgreSQL數據庫的另一臺服務器上。存儲在多個數據庫中的模型的Symfony項目

更準確地說我想在MySQL數據庫中的一些模型和其他模型中的PostgreSQL數據庫的同時存儲和做無縫沒有明確的數據庫切換(我的意思是行走將使用適當的數據庫連接和SQL方言來檢索/存儲數據)。來自MySQL部分的模型與PostgreSQL沒有關係。

可能嗎?如果是,我也想知道如何設置開發環境(我想在開發和生產環境中訪問不同的MySQL/PostgreSQL數據庫)。

UPD:我發現這個問題,所以重新編寫這個問題:Multiple databases support in Symfony但我必須檢查它是否適用於最新版本的Symfony。

回答

2

我每天都在使用symfony,實際上你可以有2個數據庫來存儲模型的無關部分。你需要設置在你兩個連接的database.yml(我不熟悉posgress所以你必須弄清楚如何設置它correclty):

mysql_connection: 
    class:  sfPropelDatabase 
    param: 
     phptype: mysql 
     classname: MysqlPropelPDO 
     dsn:  '' 
     username: user 
     password: pass 
     encoding: UTF-8 
     pooling: true 

    postgress_connection: 
    class:  sfPropelDatabase 
    param: 
     phptype: postgres 
     classname: PostgresPropelPDO 
     dsn:  '' 
     username: user 
     password: pass 
     encoding: UTF-8 
     pooling: true 

一旦你做到這一點,我們應該得到開始用的schema.yml文件或文件(如要使用2個數據庫,我建議有2個文件,一個爲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 
    [...] 

postgres_schema.yml file:

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

一旦你完成了架構文件的設置,你應該很好地去創建所有的類並開始玩得開心。希望這可以幫助

相關問題