一个CakePHP应用程序,两个数据库

时间:2012-11-23 13:20:31

标签: cakephp database-connection sqldatasource

我阅读了关于“一个模型/控制器的两个数据库”的各种Q& A,我找到了针对特定情况的许多解决方案(例如http://goo.gl/EP8BB),但我想知道是否将一个应用程序连接到TWO数据库这是困难和耗时的。

我的意思是,我有两个数据库(相同的结构,不同的数据),但我只想使用一个CakePHP 1.3应用程序。我如何选择连接到哪个数据库?这很简单,看看SERVER_NAME。

我的database.php文件中有两个数据库。为什么不能在模型中设置与此相似的东西?

**MyModel.php**
-----------
class MyModel extends AppModel {
    if ($_SERVER['SERVER_NAME' == "app1") {
        var $useDbConfig = "database1";
    } else if ($_SERVER['SERVER_NAME' == "app1") {  
        var $useDbConfig = "database2";
    }
}

这是“快速解决方案”这是天真和愚蠢的吗?它似乎很容易处理(部分原因是我还没有能够使它工作),而不是编写无限的组件,设置数据源等。

1 个答案:

答案 0 :(得分:2)

鉴于你将ifelse-Code放在模型的__construct方法中(只是为了防止一些令人讨厌的错误填满你的屏幕) - 不,这既不天真也不愚蠢。

我曾经使用过 - 稍微扩展但是 - 基本上类似于在开发和生产配置之间切换。

如果相应的配置开关更复杂和/或在多个应用程序中使用,那么组件在我眼中会有意义。