Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 35 additions & 0 deletions setup/includes/upgrades/common/3.2.1-missing-columns.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
<?php

/**
* Idempotent upgrade script: add content_type.icon and dashboard.customizable
* if missing (fixes broken upgrades where 3.0.0 migrations did not complete).
*
* @var modInstallVersion $this
* @var modX $modx
* @package setup
*/

use MODX\Revolution\modContentType;
use MODX\Revolution\modDashboard;

$class = modContentType::class;
$column = 'icon';
$table = $modx->getTableName($class);
$stmt = $modx->query('SHOW COLUMNS FROM ' . $modx->escape($table) . ' LIKE ' . $modx->quote($column));
$iconExists = $stmt && $stmt->fetch() !== false;

if (!$iconExists) {
$description = $this->install->lexicon('add_column', ['column' => $column, 'table' => $table]);
$this->processResults($class, $description, [$modx->manager, 'addField'], [$class, $column]);
}

$class = modDashboard::class;
$column = 'customizable';
$table = $modx->getTableName($class);
$stmt = $modx->query('SHOW COLUMNS FROM ' . $modx->escape($table) . ' LIKE ' . $modx->quote($column));
$customizableExists = $stmt && $stmt->fetch() !== false;

if (!$customizableExists) {
$description = $this->install->lexicon('add_column', ['column' => $column, 'table' => $table]);
$this->processResults($class, $description, [$modx->manager, 'addField'], [$class, $column]);
}
10 changes: 10 additions & 0 deletions setup/includes/upgrades/mysql/3.2.1-pl.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<?php
/**
* Specific upgrades for Revolution 3.2.1-pl
*
* @var modX $modx
* @package setup
* @subpackage upgrades
*/

include dirname(__DIR__) . '/common/3.2.1-missing-columns.php';