From fadc0270cd1e26a87f3572cc2bddf79766ae1fc1 Mon Sep 17 00:00:00 2001 From: Alexander Ebert Date: Wed, 10 Jan 2018 12:12:17 +0100 Subject: [PATCH] Experimental upgrade path 3.0.11+ => 3.1 --- com.woltlab.wcf/package.xml | 47 ++++++++++++++++++- com.woltlab.wcf/update_3.1_3.sql | 29 ++++++++++++ .../update_com.woltlab.wcf_3.1_addColumn.php | 6 +-- .../update_com.woltlab.wcf_3.1_preUpdate.php | 19 ++++++++ 4 files changed, 97 insertions(+), 4 deletions(-) create mode 100644 wcfsetup/install/files/acp/update_com.woltlab.wcf_3.1_preUpdate.php diff --git a/com.woltlab.wcf/package.xml b/com.woltlab.wcf/package.xml index fa5cf5f9be..1e56b35c5c 100644 --- a/com.woltlab.wcf/package.xml +++ b/com.woltlab.wcf/package.xml @@ -48,7 +48,52 @@ acp/post_install.php - + + files_pre_sql.tar + + + acp/update_com.woltlab.wcf_3.1_preUpdate.php + + + + + acp/update_com.woltlab.wcf_3.1_addColumn.php + + update_3.1_1.sql + update_3.1_2.sql + update_3.1_3.sql + update_3.1_4.sql + + + + + + + + + + + + + + + + + + acp/update_com.woltlab.wcf_3.1_pageSearchIndex.php + + + + + + + + + + + + acp/update_com.woltlab.wcf_3.1_postUpgrade.php + acptemplates_update.tar diff --git a/com.woltlab.wcf/update_3.1_3.sql b/com.woltlab.wcf/update_3.1_3.sql index 3d40036a5d..886a8f0efc 100644 --- a/com.woltlab.wcf/update_3.1_3.sql +++ b/com.woltlab.wcf/update_3.1_3.sql @@ -40,6 +40,20 @@ CREATE TABLE wcf1_devtools_project ( ALTER TABLE wcf1_event_listener CHANGE eventClassName eventClassName VARCHAR(255) NOT NULL DEFAULT ''; +DROP TABLE IF EXISTS wcf1_package_compatibility; +CREATE TABLE wcf1_package_compatibility ( + packageID INT(10) NOT NULL, + version SMALLINT(4) NOT NULL, + UNIQUE KEY compatibleVersion (packageID, version) +); + +DROP TABLE IF EXISTS wcf1_package_update_compatibility; +CREATE TABLE wcf1_package_update_compatibility ( + packageUpdateVersionID INT(10) NOT NULL, + version SMALLINT(4) NOT NULL, + UNIQUE KEY compatibleVersion (packageUpdateVersionID, version) +); + ALTER TABLE wcf1_package_update_server CHANGE COLUMN apiVersion apiVersion ENUM('2.0', '2.1', '3.1') NOT NULL DEFAULT '2.0'; DROP TABLE IF EXISTS wcf1_page_box_order; @@ -50,6 +64,15 @@ CREATE TABLE wcf1_page_box_order ( UNIQUE KEY pageToBox (pageID, boxID) ); +DROP TABLE IF EXISTS wcf1_registry; +CREATE TABLE wcf1_registry ( + packageID INT(10) NOT NULL, + field VARCHAR(191) NOT NULL, + fieldValue MEDIUMTEXT, + + UNIQUE KEY uniqueField (packageID, field) +); + DROP TABLE IF EXISTS wcf1_trophy; CREATE TABLE wcf1_trophy( trophyID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, @@ -87,14 +110,20 @@ CREATE TABLE wcf1_user_trophy( ALTER TABLE wcf1_article_content ADD FOREIGN KEY (teaserImageID) REFERENCES wcf1_media (mediaID) ON DELETE SET NULL; ALTER TABLE wcf1_bbcode_media_provider ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE; ALTER TABLE wcf1_media ADD FOREIGN KEY (categoryID) REFERENCES wcf1_category (categoryID) ON DELETE SET NULL; +ALTER TABLE wcf1_package_compatibility ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE; +ALTER TABLE wcf1_package_update_compatibility ADD FOREIGN KEY (packageUpdateVersionID) REFERENCES wcf1_package_update_version (packageUpdateVersionID) ON DELETE CASCADE; ALTER TABLE wcf1_page_box_order ADD FOREIGN KEY (pageID) REFERENCES wcf1_page (pageID) ON DELETE CASCADE; ALTER TABLE wcf1_page_box_order ADD FOREIGN KEY (boxID) REFERENCES wcf1_box (boxID) ON DELETE CASCADE; +ALTER TABLE wcf1_registry ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE; ALTER TABLE wcf1_trophy ADD FOREIGN KEY (categoryID) REFERENCES wcf1_category (categoryID) ON DELETE CASCADE; ALTER TABLE wcf1_user_trophy ADD FOREIGN KEY (trophyID) REFERENCES wcf1_trophy (trophyID) ON DELETE CASCADE; ALTER TABLE wcf1_user_trophy ADD FOREIGN KEY (userID) REFERENCES wcf1_user (userID) ON DELETE CASCADE; ALTER TABLE wcf1_user_special_trophy ADD FOREIGN KEY (userID) REFERENCES wcf1_user (userID) ON DELETE CASCADE; ALTER TABLE wcf1_user_special_trophy ADD FOREIGN KEY (trophyID) REFERENCES wcf1_trophy (trophyID) ON DELETE CASCADE; +INSERT INTO wcf1_package_update_server (serverURL, status, isDisabled, errorMessage, lastUpdateTime, loginUsername, loginPassword) VALUES ('http://update.woltlab.com/tornado/', 'online', 0, NULL, 0, '', ''); +INSERT INTO wcf1_package_update_server (serverURL, status, isDisabled, errorMessage, lastUpdateTime, loginUsername, loginPassword) VALUES ('http://store.woltlab.com/tornado/', 'online', 0, NULL, 0, '', ''); + INSERT INTO wcf1_style_variable (variableName, defaultValue) VALUES ('wcfContentContainerBackground', 'rgba(255, 255, 255, 1)'); INSERT INTO wcf1_style_variable (variableName, defaultValue) VALUES ('wcfContentContainerBorder', 'rgba(236, 241, 247, 1)'); INSERT INTO wcf1_style_variable (variableName, defaultValue) VALUES ('wcfEditorButtonBackground', 'rgba(58, 109, 156, 1)'); diff --git a/wcfsetup/install/files/acp/update_com.woltlab.wcf_3.1_addColumn.php b/wcfsetup/install/files/acp/update_com.woltlab.wcf_3.1_addColumn.php index b5ed298114..2cbb73bfd8 100644 --- a/wcfsetup/install/files/acp/update_com.woltlab.wcf_3.1_addColumn.php +++ b/wcfsetup/install/files/acp/update_com.woltlab.wcf_3.1_addColumn.php @@ -22,15 +22,15 @@ ALTER TABLE wcf1_article_content ADD COLUMN teaserImageID INT(10); ALTER TABLE wcf1_bbcode_media_provider ADD COLUMN name VARCHAR(80) NOT NULL, ADD COLUMN packageID INT(10) NOT NULL, ADD COLUMN className varchar(255) NOT NULL DEFAULT ''; ALTER TABLE wcf1_box ADD COLUMN lastUpdateTime INT(10) NOT NULL DEFAULT 0; ALTER TABLE wcf1_comment ADD COLUMN unfilteredResponses MEDIUMINT(7) NOT NULL DEFAULT '0', ADD COLUMN unfilteredResponseIDs VARCHAR(255) NOT NULL DEFAULT '', ADD COLUMN enableHtml TINYINT(1) NOT NULL DEFAULT 0, ADD COLUMN isDisabled TINYINT(1) NOT NULL DEFAULT 0; -ALTER TABLE wcf1_comment_response ADD COLUMN isDisabled TINYINT(1) NOT NULL DEFAULT 0; +ALTER TABLE wcf1_comment_response ADD COLUMN enableHtml TINYINT(1) NOT NULL DEFAULT 0, ADD COLUMN isDisabled TINYINT(1) NOT NULL DEFAULT 0; ALTER TABLE wcf1_language_item ADD COLUMN languageItemOldValue MEDIUMTEXT, ADD COLUMN languageCustomItemDisableTime INT(10); ALTER TABLE wcf1_media ADD COLUMN categoryID INT(10); ALTER TABLE wcf1_modification_log ADD COLUMN hidden TINYINT(1) NOT NULL DEFAULT 1; ALTER TABLE wcf1_package_update ADD COLUMN pluginStoreFileID INT(10) NOT NULL DEFAULT 0; ALTER TABLE wcf1_page ADD COLUMN cssClassName VARCHAR(255) NOT NULL DEFAULT '', ADD COLUMN availableDuringOfflineMode TINYINT(1) NOT NULL DEFAULT 0, ADD COLUMN allowSpidersToIndex TINYINT(1) NOT NULL DEFAULT 0, ADD COLUMN excludeFromLandingPage TINYINT(1) NOT NULL DEFAULT 0; ALTER TABLE wcf1_paid_subscription_user ADD COLUMN sentExpirationNotification TINYINT(1) NOT NULL DEFAULT 0; -ALTER TABLE wcf1_style ADD COLUMN hasFavicon TINYINT(1) NOT NULL DEFAULT 0, ADD COLUMN apiVersion ENUM('3.0', '3.1') NOT NULL DEFAULT '3.0'; -ALTER TABLE wcf1_user ADD COLUMN trophyPoints INT(10) NOT NULL DEFAULT 0; +ALTER TABLE wcf1_style ADD COLUMN image2x VARCHAR(255) NOT NULL DEFAULT '', ADD COLUMN hasFavicon TINYINT(1) NOT NULL DEFAULT 0, ADD COLUMN coverPhotoExtension VARCHAR(4) NOT NULL DEFAULT '', ADD COLUMN apiVersion ENUM('3.0', '3.1') NOT NULL DEFAULT '3.0'; +ALTER TABLE wcf1_user ADD COLUMN trophyPoints INT(10) NOT NULL DEFAULT 0, ADD COLUMN coverPhotoHash CHAR(40) DEFAULT NULL, ADD COLUMN coverPhotoExtension VARCHAR(4) NOT NULL DEFAULT '', ADD COLUMN disableCoverPhoto TINYINT(1) NOT NULL DEFAULT 0, ADD COLUMN disableCoverPhotoReason TEXT, ADD COLUMN disableCoverPhotoExpires INT(10) NOT NULL DEFAULT 0; ALTER TABLE wcf1_user_rank ADD COLUMN hideTitle TINYINT(1) NOT NULL DEFAULT 0; DATA; diff --git a/wcfsetup/install/files/acp/update_com.woltlab.wcf_3.1_preUpdate.php b/wcfsetup/install/files/acp/update_com.woltlab.wcf_3.1_preUpdate.php new file mode 100644 index 0000000000..c385a3a935 --- /dev/null +++ b/wcfsetup/install/files/acp/update_com.woltlab.wcf_3.1_preUpdate.php @@ -0,0 +1,19 @@ + + * @package WoltLabSuite\Core + */ +if (Package::compareVersion(WCF_VERSION, '3.0.11', '<')) { + if (WCF::getLanguage()->getFixedLanguageCode() == 'de') { + throw new SystemException("Die Aktualisierung erfordert WoltLab Suite Core (com.woltlab.wcf) in Version 3.0.11 oder höher."); + } + else { + throw new SystemException("The update requires WoltLab Suite Core (com.woltlab.wcf) in version 3.0.11 or later."); + } +} -- 2.20.1