1
我想通過symfony 1中的石灰進行測試的用戶友好的方式。我想爲我寫入的每個測試加載特定的SQL轉儲(如果需要)。我面對的問題是我不知道如何獨立於數據庫類型進行轉儲加載。目前我正在使用shell exec()命令。以下是代碼:如何使用symfony加載SQL轉儲
public function loadSql()
{
$this->diag("Loading dump...");
if ($this->_sql_is_set)
{
if (file_exists($this->_getSqlPath()))
{
$this->_emptyDataBase();
$options = $this->_connection_manager->connection()->getOptions();
$dsn_parts = $this->_connection_manager->parsePdoDsn($options['dsn']);
exec("mysql -u{$options['username']} -p{$options['password']} {$dsn_parts['dbname']} < {$this->_getSqlPath()}");
return $this;
}
else
{
$this->error("Nothing to load : sql file was not found in ".$this->_getDataDir());
exit;
}
}
else
{
$this->error("Nothing to load : sql dump was not set");
exit;
}
}
$this->_connection_manager
是Doctrine_Manager的一個實例。任何幫助將與此?
你從哪兒弄來了'getDbh()'方法?通過Doctrine_Manager類中的代碼查看並且沒有這種方法。還運行此代碼,並得到這個錯誤'調用未定義的方法Doctrine_Manager :: getDbh()' –
哦,做了一點研究,並有權訪問'getDbh'方法,我們需要首先調用'getCurrentConnection()'。無論如何Thx暗示。 –
是的你需要有當前連接才能訪問'getDbh'這就是爲什麼'$ conn = Doctrine_Manager :: connection();' –