2010-09-08 88 views
0

我需要設置的環境特定的表前綴,所以我發現不完美的解決方案在ProjectConfiguration :: configureDoctrine(Doctrine_Manager $經理)插入此: (配置/ ProjectConfiguration.class .PHP)的Symfony 1.4學說 - 全球數據庫表的前綴__%s的

if (sfConfig::get('app_database_table_prefix')) { 
    $manager->setAttribute(Doctrine_Core::ATTR_TBLNAME_FORMAT, 
    sfConfig::get('app_database_table_prefix')); 
} 

...然後我可以設置在app.yml ENV唯一的前綴:

prod: 
    database_table_prefix: prefix__%s 

但..這是很酷的所有應用,除了插件。 插件忽略config/ProjectConfiguration.class.php。

難道你不知道alglobal解決方案,而在插件目錄(我需要的東西會有什麼進水所有更多鈔票未來的應用程序插件太)進行任何更改

+0

我發現sfPluginConfiguration更新臨時sollution: :通過類似upper的相同代碼初始化具體插件(),但用Doctrine_Manager :: getInstance()代替$ manager,但它仍然不是最終的解決方案,它應該影響所有將來的插件而不會改變代碼中的任何內容。 – palmic 2010-09-08 09:23:34

回答

2

它看起來像你使用Doctrine,所以它看起來像你可以在您的databases.yml文件中設置前綴。該指令是在this頁面的底部,但它看起來像你可以通過添加tblname_format的屬性在databases.yml裏像這樣設置的表名格式爲:

all: 
    doctrine: 
    param: 
     attributes: 
     tblname_format: YOURPREFIX_%s