/** * Determine all create table statements which create the sys_file* tables * * @return array */ protected function getRequiredUpdates() { $requiredUpdates = array(); $fileContent = \TYPO3\CMS\Core\Utility\GeneralUtility::getUrl(PATH_t3lib . 'stddb/tables.sql'); $FDfile = $this->installerSql->getFieldDefinitions_fileContent($fileContent); $FDdb = $this->installerSql->getFieldDefinitions_database(TYPO3_db); $diff = $this->installerSql->getDatabaseExtra($FDfile, $FDdb); $update_statements = $this->installerSql->getUpdateSuggestions($diff); foreach ((array) $update_statements['create_table'] as $string) { if (preg_match('/^CREATE TABLE sys_file($|_)?/', $string)) { $requiredUpdates[] = $string; } } return $requiredUpdates; }
/** * Update database / process db updates from ext_tables * * @param string $rawDefinitions The raw SQL statements from ext_tables.sql * @return void */ public function updateDbWithExtTablesSql($rawDefinitions) { $fieldDefinitionsFromFile = $this->installToolSqlParser->getFieldDefinitions_fileContent($rawDefinitions); if (count($fieldDefinitionsFromFile)) { $fieldDefinitionsFromCurrentDatabase = $this->installToolSqlParser->getFieldDefinitions_database(); $diff = $this->installToolSqlParser->getDatabaseExtra($fieldDefinitionsFromFile, $fieldDefinitionsFromCurrentDatabase); $updateStatements = $this->installToolSqlParser->getUpdateSuggestions($diff); foreach ((array) $updateStatements['add'] as $string) { $GLOBALS['TYPO3_DB']->admin_query($string); } foreach ((array) $updateStatements['change'] as $string) { $GLOBALS['TYPO3_DB']->admin_query($string); } foreach ((array) $updateStatements['create_table'] as $string) { $GLOBALS['TYPO3_DB']->admin_query($string); } } }