2010-09-08 65 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