protected function execute(InputInterface $input, OutputInterface $output) { $autoRegister = $input->getOption('auto-register'); $installer = new \Installer(); $installed = $installer->tableExists('users_users'); if ($installed) { $installer->update(); $output->writeln('Update completed.'); if (count($installer->installed)) { foreach ($installer->installed as $patch) { $output->writeln("<info>Installed: {$patch}</info>"); } } if (count($installer->executed)) { foreach ($installer->executed as $script) { $output->writeln("<info>Executed: {$script}</info>"); } } $output->writeln('<info>Queries executed successfully: ' . count($installer->success) . '</info>'); if (count($installer->failures)) { foreach ($installer->failures as $key => $error) { list($query, $message, $patch) = $error; $output->writeln("<error>Error {$key} in {$patch}\n\t{$query}\n\t{$message}</error>"); if ($autoRegister) { $installer->recordPatch($patch); } } } $cachelib = \TikiLib::lib('cache'); $cachelib->empty_cache(); } else { $output->writeln('<error>Database not found.</error>'); } }
protected function execute(InputInterface $input, OutputInterface $output) { $force = $input->getOption('force'); $installer = new \Installer(); $installed = $installer->tableExists('users_users'); if (!$installed || $force) { $installer->cleanInstall(); $output->writeln('Installation completed.'); $output->writeln('<info>Queries executed successfully: ' . count($installer->success) . '</info>'); if (count($installer->failures)) { foreach ($installer->failures as $key => $error) { list($query, $message, $patch) = $error; $output->writeln("<error>Error {$key} in {$patch}\n\t{$query}\n\t{$message}</error>"); } } global $cachelib; require_once 'lib/cache/cachelib.php'; $cachelib->empty_cache(); } else { $output->writeln('<error>Database already exists.</error>'); } }
protected function execute(InputInterface $input, OutputInterface $output) { $force = $input->getOption('force'); $installer = new \Installer(); $installed = $installer->tableExists('users_users'); if (!$installed || $force) { $installer->cleanInstall(); $output->writeln('Installation completed.'); $output->writeln('<info>Queries executed successfully: ' . count($installer->success) . '</info>'); if (count($installer->failures)) { foreach ($installer->failures as $key => $error) { list($query, $message, $patch) = $error; $output->writeln("<error>Error {$key} in {$patch}\n\t{$query}\n\t{$message}</error>"); } } include_once 'tiki-setup.php'; \TikiLib::lib('cache')->empty_cache(); initialize_prefs(true); \TikiLib::lib('unifiedsearch')->rebuild(); } else { $output->writeln('<error>Database already exists.</error>'); } }
$ADODB_FETCH_MODE = ADODB_FETCH_ASSOC; $initializer = new TikiDb_Initializer(); $initializer->setPreferredConnector($api_tiki); $db = $initializer->getConnection(array('host' => $host_tiki, 'user' => $user_tiki, 'pass' => $pass_tiki, 'dbs' => $dbs_tiki, 'charset' => $client_charset)); if (!$db) { die("\nUnable to connect to the database\n\n"); } TikiDb::set($db); global $tikilib; require_once 'lib/tikilib.php'; $tikilib = new TikiLib(); // update db if needed require_once 'lib/init/initlib.php'; include_once 'installer/installlib.php'; $installer = new Installer(); if (!$installer->tableExists('tiki_preferences')) { echo "Installing Tiki database...\n"; $installer->cleanInstall(); } else { if ($installer->requiresUpdate()) { echo "Updating Tiki database...\n"; $installer->update(); } } $pwd = getcwd(); chdir(dirname(__FILE__) . '/../..'); $smarty = TikiLib::lib('smarty'); require_once 'lib/init/smarty.php'; $smarty->addPluginsDir('../smarty_tiki/'); $cachelib = TikiLib::lib('cache'); $wikilib = TikiLib::lib('wiki');
/** * For 2.4 upgrade: migrate OJS default statistics to the metrics table. */ function migrateDefaultUsageStatistics() { $loadId = '2.4.2-upgrade-ojsViews'; $metricsDao =& DAORegistry::getDAO('MetricsDAO'); $insertIntoClause = 'INSERT INTO metrics (file_type, load_id, metric_type, assoc_type, assoc_id, submission_id, metric, context_id, issue_id)'; // Galleys. $galleyUpdateCases = array(array('fileType' => STATISTICS_FILE_TYPE_PDF, 'isHtml' => false, 'assocType' => ASSOC_TYPE_GALLEY), array('fileType' => STATISTICS_FILE_TYPE_HTML, 'isHtml' => true, 'assocType' => ASSOC_TYPE_GALLEY), array('fileType' => STATISTICS_FILE_TYPE_OTHER, 'isHtml' => false, 'assocType' => ASSOC_TYPE_GALLEY)); if (Installer::tableExists('issue_galleys_stats_migration')) { $galleyUpdateCases[] = array('fileType' => STATISTICS_FILE_TYPE_PDF, 'assocType' => ASSOC_TYPE_ISSUE_GALLEY); $galleyUpdateCases[] = array('fileType' => STATISTICS_FILE_TYPE_OTHER, 'assocType' => ASSOC_TYPE_ISSUE_GALLEY); } foreach ($galleyUpdateCases as $case) { $params = array(); if ($case['fileType'] == STATISTICS_FILE_TYPE_PDF) { $pdfFileTypeWhereCheck = 'IN'; } else { $pdfFileTypeWhereCheck = 'NOT IN'; } $params = array($case['fileType'], $loadId, OJS_METRIC_TYPE_LEGACY_DEFAULT, $case['assocType']); if ($case['assocType'] == ASSOC_TYPE_GALLEY) { array_push($params, (int) $case['isHtml']); $selectClause = ' SELECT ?, ?, ?, ?, ag.galley_id, ag.article_id, ag.views, a.journal_id, pa.issue_id FROM article_galleys_stats_migration as ag LEFT JOIN articles AS a ON ag.article_id = a.article_id LEFT JOIN published_articles as pa on ag.article_id = pa.article_id LEFT JOIN article_files as af on ag.file_id = af.file_id WHERE a.article_id is not null AND ag.views > 0 AND ag.html_galley = ? AND af.file_type '; } else { $selectClause = ' SELECT ?, ?, ?, ?, ig.galley_id, 0, ig.views, i.journal_id, ig.issue_id FROM issue_galleys_stats_migration AS ig LEFT JOIN issues AS i ON ig.issue_id = i.issue_id LEFT JOIN issue_files AS ifi ON ig.file_id = ifi.file_id WHERE ig.views > 0 AND i.issue_id is not null AND ifi.file_type '; } array_push($params, 'application/pdf', 'application/x-pdf', 'text/pdf', 'text/x-pdf'); $metricsDao->update($insertIntoClause . $selectClause . $pdfFileTypeWhereCheck . ' (?, ?, ?, ?)', $params, false); } // Published articles. $params = array(null, $loadId, OJS_METRIC_TYPE_LEGACY_DEFAULT, ASSOC_TYPE_ARTICLE); $metricsDao->update($insertIntoClause . ' SELECT ?, ?, ?, ?, pa.article_id, pa.article_id, pa.views, i.journal_id, pa.issue_id FROM published_articles_stats_migration as pa LEFT JOIN issues AS i ON pa.issue_id = i.issue_id WHERE pa.views > 0 AND i.issue_id is not null;', $params, false); // Set the site default metric type. $siteSettingsDao =& DAORegistry::getDAO('SiteSettingsDAO'); /* @var $siteSettingsDao SiteSettingsDAO */ $siteSettingsDao->updateSetting('defaultMetricType', OJS_METRIC_TYPE_COUNTER); return true; }