我的网站正准备上线。由于在我的网站上开发了更新,我想在不影响实际数据的情况下测试真实服务器中的更新。我需要2个数据库(同一个数据库有2个名字)同时连接我的网站。一个用于测试我自己和其他用于真实用户。
我尝试将config / main复制到config / main_test,将index.php主复制到index_test.php。并在config / main.php和config / main_test.php中实现了2个数据库连接。并将这些文件连接到index.php和index_test.php,并尝试使用http://mysite.com/index.php和http://mysite.com/index_test.php运行该网站。但是两个URL都基于config / main.php中提供的数据库连接工作。
如何使用2个数据库?我不认为保留整个网站的2份副本是个好主意。欢迎提出所有建议
答案 0 :(得分:1)
您可以通过将配置文件 main.php 复制到 main-test.php 和 index.php 到来实现它索引test.php的。在 main-test.php 文件中设置新的数据库连接属性。在 index-test.php 中更改配置路径,您也可以启用调试。以下是index-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();
不要忘记在其中使用带有index-test.php的URL。
答案 1 :(得分:0)
定义一个等于'DEVELOPMENT'或'PRODUCTION'
的环境变量define('ENVIRONMENT', 'DEVELOPMENT');
然后您的数据库连接可以基于该常量。
if(ENVIRONMENT == 'DEVELOPMENT'){
//connect to development database
}
如果希望网站在生产模式下工作,可以将其切换为“PRODUCTION”。
你不应该在生产机器上进行测试。
答案 2 :(得分:0)
我想测试真实服务器中的更新而不影响实际数据
你实际上不可能。最好在暂存环境中使用实时数据的副本,以确保工作正常。如果您的代码需要新的数据库字段而您的数据库没有它,那么您将遇到问题。
最好让您在检查时对迁移进行非实时数据更改。