}
}
+// Add ALTER TABLE `foo` ADD sql if not found
+function addExtensionAddTableColumnSql ($tableName, $columnName, $columnSql) {
+ // Is the column there?
+ if (!ifSqlColumnExists('{?_MYSQL_PREFIX?}_' . $tableName, $columnName)) {
+ // Then add it
+ addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_' . $tableName . '` ADD `' . $columnName . '` ' . $columnSql);
+ } elseif (isDebugModeEnabled()) {
+ // Add debug line
+ logDebugMessage(__FUNCTION__, __LINE__, 'tableName=' . $tableName . ',columnName=' . $columnName . ',columnSql=' . $columnSql . ': does already exist.');
+ }
+}
+
+// Add ALTER TABLE `foo` CHANGE sql if not found
+function addExtensionChangeTableColumnSql ($tableName, $fromColumnName, $toColumnName, $columnSql) {
+ // Is the column there?
+ if ((ifSqlColumnExists('{?_MYSQL_PREFIX?}_' . $tableName, $fromColumnName)) && (($fromColumnName == $toColumnName) || (!ifSqlColumnExists('{?_MYSQL_PREFIX?}_' . $tableName, $toColumnName)))) {
+ // Then add it
+ addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_' . $tableName . '` CHANGE `' . $fromColumnName . '` `' . $toColumnName . '` ' . $columnSql);
+ } elseif (isDebugModeEnabled()) {
+ // Add debug line
+ logDebugMessage(__FUNCTION__, __LINE__, 'tableName=' . $tableName . ',fromColumnName=' . $fromColumnName . ',toColumnName=' . $toColumnName . ',columnSql=' . $columnSql . ': Cannot be changed.');
+ }
+}
+
+// Add ALTER TABLE `foo` DROP sql if not found
+function addExtensionDropTableColumnSql ($tableName, $columnName) {
+ // Is the column there?
+ if (ifSqlColumnExists('{?_MYSQL_PREFIX?}_' . $tableName, $columnName)) {
+ // Then add it
+ addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_' . $tableName . '` DROP `' . $columnName . '`');
+ } elseif (isDebugModeEnabled()) {
+ // Add debug line
+ logDebugMessage(__FUNCTION__, __LINE__, 'tableName=' . $tableName . ',columnName=' . $columnName . ': does not exist.');
+ }
+}
+
// Add configuration entry if not found for actual extension
function addConfigAddSql ($columnName, $columnSql) {
// Is the column there?
if (!ifSqlColumnExists('{?_MYSQL_PREFIX?}_config', $columnName)) {
// Not found, so add it
- addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `' . $columnName . '` ' . $columnSql);
+ addExtensionAddTableColumnSql('config', $columnName, $columnSql);
} elseif (isDebugModeEnabled()) {
// Add debug line
logDebugMessage(__FUNCTION__, __LINE__, 'Configuration entry ' . $columnName . ' already created. columnSql=' . $columnSql);
// Is the column there?
if (ifSqlColumnExists('{?_MYSQL_PREFIX?}_config', $columnName)) {
// Found, so add it
- addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_config` DROP `' . $columnName . '`');
+ addExtensionDropTableColumnSql('config', $columnName);
} elseif (isDebugModeEnabled()) {
// Add debug line, reportBug() would cause some extenion updates fail
logDebugMessage(__FUNCTION__, __LINE__, 'Configuration entry ' . $columnName . ' not found.');