0
DataSource的測試中,我們有自定義數據源,並希望測試驗證Find方法後的數據執行等於我想它,這將是可能的,如果我們能夠在測試代碼更改數據源人們不customized.As。我嘗試了很多案例,但是我無法做到這一點。如何在CakePHP中2
public $default = [
'datasource' => 'CustomPostgres',
'persistent' => false,
'host' => 'localhost',
'port' => '5432',
'login' => 'hoge',
'password' => 'hogehoge',
'database' => 'prod',
'schema' => 'public',
'prefix' => '',
'encoding' => 'utf8'
];
public $test = [
'datasource' => 'CustomPostgres',
'persistent' => false,
'host' => 'localhost',
'port' => '5432',
'login' => 'hoge',
'password' => 'hogehoge',
'database' => 'test_prod',
'schema' => 'public',
'prefix' => '',
'encoding' => 'utf8'
];
public $old = [
'datasource' => 'Database/Postgres',
'persistent' => false,
'host' => 'localhost',
'port' => '5432',
'login' => 'hoge',
'password' => 'hogehoge',
'database' => 'dev',
'schema' => 'public',
'prefix' => '',
'encoding' => 'utf8'
];
public $test_old = [
'datasource' => 'Database/Postgres',
'persistent' => false,
'host' => 'localhost',
'port' => '5432',
'login' => 'hoge',
'password' => 'hogehoge',
'database' => 'test_dev',
'schema' => 'public',
'prefix' => '',
'encoding' => 'utf8'
];
//try1
$this->Model->setDataSource('test_old');
//try2
ConnectionManage::create('test_old',///);
//try3
////in fixture File and ClassRegistry:Init("Model")
$useDbConfig = "old";
////inner start::up
ClassRegistry:Init("Model");
//try4 extends model
ModelForOldSetting extends Model{
$useDbConfig = "old";
}
上面的代碼沒有工作,它總是發出錯誤說 MissingConnectionException:數據庫連接「Postgres的」丟失,或無法建立,運行測試時,但設置默認數據源數據庫/ Postgres的,當它工作正常沒有測試運行本地瀏覽器。
所以,我真的很困惑,爲什麼數據庫連接「的Postgres」是missing.Any想法使我感激他們。
什麼是你的Postgres版本? –
@Kevin Kyaw我的postgresql版本是9.6.4,我找到了它的原因。我很抱歉,這不是cakephp問題,並且是由我們項目的愚蠢應用程序結構引起的。感謝您嘗試提供建議。 – tkowt