2013-11-02 16 views
1

我的网站正准备上线。由于更新是在我的网站上开发的,我想在真实服务器上测试更新而不影响实际数据。我需要2个数据库(具有2个名称的相同数据库)来同时连接我的网站。一个用于测试自己和其他用户。在Yii中连接2个数据库以同时处理测试数据和实际数据

我试着复制配置/主要配置/ main_test和主要index.php index_test.php。并在config/main.php和config/main_test.php中实现了2个数据库连接。并将这些文件连接到index.php和index_test.php,并尝试使用http://mysite.com/index.phphttp://mysite.com/index_test.php运行该网站。但是这两个网址都是基于config/main.php中提供的数据库连接进行工作的。

如何才能使用2个数据库?我不认为保留整个网站的2份是一个好主意。所有的建议,欢迎

回答

1

您可以main.php复制你的配置文件,以主test.php的的index.php指数test.php的实现它。在main-test.php文件中设置新的数据库连接属性。在index-test.php将路径更改为配置,您也可以启用调试。这里是你的索引的test.php的例子:

 
$yii = '/opt/yii/framework/yii.php'; 
$config = dirname(__FILE__) . '/protected/config/main-test.php'; 

defined('YII_DEBUG') or define('YII_DEBUG', true); 
defined('YII_TRACE_LEVEL') or define('YII_TRACE_LEVEL', 3); 

require_once($yii); 
Yii::createWebApplication($config)->run(); 

而且不要忘了使用的URL在其指数test.php的。

0

定义某个设定等于“发展”或“生产”

define('ENVIRONMENT', 'DEVELOPMENT'); 

那么你的数据库连接,该常数是基于关闭的环境变量。

if(ENVIRONMENT == 'DEVELOPMENT'){ 
    //connect to development database 
} 

当您希望网站在生产模式下工作时,可以将其切换到'PRODUCTION'。

尽管如此,您不应该在生产机器上进行测试。

0

我想测试在真实服务器的updations而不影响真实数据

你不能真正。最好在登台环境中使用你的实时数据的副本,以确保工作正常。如果你的代码需要新的数据库字段,而你的数据库没有,你将会遇到问题。

更好的是在您检查事物时进行迁移,以更改非实时数据。