/** * Pre-installation. * @return boolean */ function preInstall() { if (!isset($this->currentVersion)) { $this->currentVersion = Version::fromString(''); } $this->locale = $this->getParam('locale'); $this->installedLocales = $this->getParam('additionalLocales'); if (!isset($this->installedLocales) || !is_array($this->installedLocales)) { $this->installedLocales = array(); } if (!in_array($this->locale, $this->installedLocales) && Locale::isLocaleValid($this->locale)) { array_push($this->installedLocales, $this->locale); } if ($this->getParam('manualInstall')) { // Do not perform database installation for manual install // Create connection object with the appropriate database driver for adodb-xmlschema $conn = new DBConnection($this->getParam('databaseDriver'), null, null, null, null); $this->dbconn =& $conn->getDBConn(); } else { // Connect to database $conn = new DBConnection($this->getParam('databaseDriver'), $this->getParam('databaseHost'), $this->getParam('databaseUsername'), $this->getParam('databasePassword'), $this->getParam('createDatabase') ? null : $this->getParam('databaseName'), true, $this->getParam('connectionCharset') == '' ? false : $this->getParam('connectionCharset')); $this->dbconn =& $conn->getDBConn(); if (!$conn->isConnected()) { $this->setError(INSTALLER_ERROR_DB, $this->dbconn->errorMsg()); return false; } } DBConnection::getInstance($conn); return parent::preInstall(); }
/** * Parse an XML database file and output the corresponding SQL statements. * See lib/pkp/dtd/xmlSchema.dtd for the format of the XML files. */ function execute() { require_once './lib/pkp/lib/adodb/adodb-xmlschema.inc.php'; if (in_array($this->command, array('print', 'save'))) { // Don't connect to actual database (so parser won't build upgrade XML) $conn = new DBConnection(Config::getVar('database', 'driver'), null, null, null, null, true, Config::getVar('i18n', 'connection_charset')); $dbconn = $conn->getDBConn(); } else { // Create or upgrade existing database $dbconn =& DBConnection::getConn(); } $schema = new adoSchema($dbconn); $dict =& $schema->dict; $dict->SetCharSet(Config::getVar('i18n', 'database_charset')); if ($this->type == 'schema') { // Parse XML schema files $sql = $schema->parseSchema($this->inputFile); switch ($this->command) { case 'execute': $schema->ExecuteSchema(); break; case 'save': case 'save_upgrade': $schema->SaveSQL($this->outputFile); break; case 'print': case 'print_upgrade': default: echo @$schema->PrintSQL('TEXT') . "\n"; break; } } else { if ($this->type == 'data') { // Parse XML data files $dataXMLParser = new DBDataXMLParser(); $dataXMLParser->setDBConn($dbconn); $sql = $dataXMLParser->parseData($this->inputFile); switch ($this->command) { case 'execute': $schema->addSQL($sql); $schema->ExecuteSchema(); break; case 'save': case 'save_upgrade': $schema->addSQL($sql); $schema->SaveSQL($this->outputFile); break; case 'print': case 'print_upgrade': default: $schema->addSQL($sql); echo @$schema->PrintSQL('TEXT') . "\n"; break; } $schema->destroy(); $dataXMLParser->destroy(); } } }
/** * @covers DBConnection::DBConnection * @covers DBConnection::initCustomDBConnection * @covers DBConnection::initConn */ public function testInitCustomDBConnection() { $this->setTestConfiguration(self::CONFIG_PGSQL); $conn = new DBConnection('sqlite', 'localhost', 'ojs', 'ojs', 'ojs', true, false, false); $dbConn = $conn->getDBConn(); self::assertType('ADODB_sqlite', $dbConn); $conn->disconnect(); unset($conn); }
/** * Pre-installation. * @return boolean */ function preInstall() { if (!isset($this->currentVersion)) { $this->currentVersion = Version::fromString(''); } $this->locale = $this->getParam('locale'); $this->installedLocales = $this->getParam('additionalLocales'); if (!isset($this->installedLocales) || !is_array($this->installedLocales)) { $this->installedLocales = array(); } if (!in_array($this->locale, $this->installedLocales) && AppLocale::isLocaleValid($this->locale)) { array_push($this->installedLocales, $this->locale); } // Connect to database $conn = new DBConnection($this->getParam('databaseDriver'), $this->getParam('databaseHost'), $this->getParam('databaseUsername'), $this->getParam('databasePassword'), $this->getParam('createDatabase') ? null : $this->getParam('databaseName'), false, $this->getParam('connectionCharset') == '' ? false : $this->getParam('connectionCharset')); $this->dbconn =& $conn->getDBConn(); if (!$conn->isConnected()) { $this->setError(INSTALLER_ERROR_DB, $this->dbconn->errorMsg()); return false; } DBConnection::getInstance($conn); return parent::preInstall(); }