Ejemplo n.º 1
0
 /**
  * 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();
 }
Ejemplo n.º 2
0
 /**
  * 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();
         }
     }
 }
Ejemplo n.º 3
0
 /**
  * @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);
 }
Ejemplo n.º 4
0
 /**
  * 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();
 }