View source for Upgrade Error With R 5.5.17

{{toc numerate=1}}

Cause: Error in version match if version is bigger than R5.5.14.

The updated wiki works as expected, but the installer does not remove all obsolete table fields and records. 
You may check if your installation is affected by checking your ##page## table in phpMyAdmin, if the ##supertag## still exists in your table. To fix that run the following script. 

Effect: The installer ignored the following necessary queries in the upgrade process:

%%(php)
<?php

$update_config_r5_5_0 = "UPDATE {$pref}config SET config_value = '" . _quote('addcomment|admin\.php|categories|claim|clone|diff|edit|export\.xml|file|latex|moderate|new|permissions|purge|print|properties|rate|referrers|referrers_sites|remove|rename|review|revisions|revisions\.xml|robots\.txt|sitemap\.xml|show|source|upload|watch|watchers|wordprocessor') . "' WHERE config_name = 'standard_handlers'";
$update_menu_r5_5_0 = "DELETE FROM {$pref}menu WHERE user_id = (SELECT user_id FROM {$pref}user WHERE user_name = 'System' LIMIT 1) AND NOT menu_lang = '" . _quote($config['language']) . "'";
$alter_page_r5_5_0 = "ALTER TABLE {$pref}page DROP supertag";
$update_page_r5_5_2 = "DELETE FROM {$pref}page WHERE owner_id = (SELECT user_id FROM {$pref}user WHERE user_name = 'System' LIMIT 1) AND NOT page_lang = '" . _quote($config['language']) . "'";
$update_menu_r5_5_1 = "DELETE m.* FROM {$pref}menu m LEFT JOIN {$pref}page p ON (m.page_id = p.page_id) WHERE p.page_id IS NULL";
$alter_page_link_r5_5_0 = "ALTER TABLE {$pref}page_link DROP to_supertag";
$alter_revision_r5_5_0 = "ALTER TABLE {$pref}revision DROP supertag";
%%

===PATCH for installer===
((commit:3992bf1e659d17cb89e2fdf7aa3a08447bf3ea16 Patch))
%%(hl diff)
diff --git a/wacko/setup/_insert_queries.php b/wacko/setup/_insert_queries.php
index 5a7e41a..9347ef7 100644
--- a/wacko/setup/_insert_queries.php
+++ b/wacko/setup/_insert_queries.php
@@ -93,7 +93,7 @@
 $upgrade['6.0.10'][]	= ['alter',		'category',			$alter_category_r5_5_0];
 
 // config
-$upgrade['5.5.14'][]	= ['update',	'config',			$update_config_r5_5_0];
+$upgrade['5.5.17'][]	= ['update',	'config',			$update_config_r5_5_0];
 $upgrade['6.0.11'][]	= ['update',	'config',			$update_config_r5_5_1];
 
 // file
@@ -104,29 +104,29 @@
 
 // menu
 $upgrade['6.0.10'][]	= ['alter',		'menu',				$alter_menu_r5_5_0];
-$upgrade['5.5.14'][]	= ['update',	'menu',				$update_menu_r5_5_0];
+$upgrade['5.5.17'][]	= ['update',	'menu',				$update_menu_r5_5_0];
 
 // page
-$upgrade['5.5.14'][]	= ['alter',		'page',				$alter_page_r5_5_0];
+$upgrade['5.5.17'][]	= ['alter',		'page',				$alter_page_r5_5_0];
 $upgrade['6.0.5'][]		= ['alter',		'page',				$alter_page_r5_5_1];
 $upgrade['6.0.10'][]	= ['alter',		'page',				$alter_page_r5_5_2];
 
-$upgrade['5.5.14'][]	= ['update',	'page',				$update_page_r5_5_2];
+$upgrade['5.5.17'][]	= ['update',	'page',				$update_page_r5_5_2];
 
 $upgrade['6.0.2'][]		= ['update',	'page',				$update_page_r5_5_0];
 $upgrade['6.0.2'][]		= ['update',	'page',				$update_page_r5_5_1];
 
 // keep this order, after $update_page_r5_5_2!
-$upgrade['5.5.14'][]	= ['update',	'menu',				$update_menu_r5_5_1];
+$upgrade['5.5.17'][]	= ['update',	'menu',				$update_menu_r5_5_1];
 
 // page link
-$upgrade['5.5.14'][]	= ['alter',		'page_link',		$alter_page_link_r5_5_0];
+$upgrade['5.5.17'][]	= ['alter',		'page_link',		$alter_page_link_r5_5_0];
 
 // rating
 $upgrade['6.0.8'][]		= ['alter',		'rating',			$alter_rating_r5_5_0];
 
 // revision
-$upgrade['5.5.14'][]	= ['alter',		'revision',			$alter_revision_r5_5_0];
+$upgrade['5.5.17'][]	= ['alter',		'revision',			$alter_revision_r5_5_0];
 $upgrade['6.0.11'][]	= ['alter',		'revision',			$alter_revision_r5_5_1];
 // user
 $upgrade['6.0.0'][]		= ['insert',	'user',				$insert_user_r5_5_0];

%%

===Action for fixing affected installations===
Manual routine to fix your already upgraded installation, place it under actions, run ##""{{admin_upgradefix}}""## it as Admin, check your tables again, if OK - remove the action again.

**action/admin_upgradefix.php**
%%(php)
<?php

if (!defined('IN_WACKO'))
{
	exit;
}

$pref = $this->db->table_prefix;

if ($this->is_admin())
{

	echo '<h2>Runs missing upgrade routines for R5.5.17 -> R6.0.x Upgrade:</h2>';
	echo '<p>This issue exists only for versions upgraded from R5.5.15 to R5.5.17.</p>';

	if (!isset($_POST['set_large_prefix_tables']))
	{
		echo $this->form_open('large_prefix');
		echo '<input type="submit" name="set_large_prefix_tables" value="' . $this->_t('UpdateButton') . '">';
		echo $this->form_close();
	}
	else if (isset($_POST['set_large_prefix_tables']))
	{
		// 1. update handlers in config table
		$this->db->sql_query("
			UPDATE {$pref}config SET
				config_value = " . $this->db->q('addcomment|admin\.php|categories|claim|clone|diff|edit|export\.xml|file|latex|moderate|new|permissions|purge|print|properties|rate|referrers|referrers_sites|remove|rename|review|revisions|revisions\.xml|robots\.txt|sitemap\.xml|show|source|upload|watch|watchers|wordprocessor') . "
			WHERE config_name = 'standard_handlers'");

		// 2. remove old menu entries
		$this->db->sql_query("
			DELETE FROM {$pref}menu
			WHERE user_id = (SELECT user_id FROM {$pref}user WHERE user_name = 'System' LIMIT 1)
				AND NOT menu_lang = " . $this->db->q($this->db->language) . "");

		// 3. remove obsolete supertag from page table
		$this->db->sql_query("
			ALTER TABLE {$pref}page DROP supertag");

		// 4. remove obsolete system pages from page table
		$this->db->sql_query("
			DELETE FROM {$pref}page
			WHERE owner_id = (SELECT user_id FROM {$pref}user WHERE user_name = 'System' LIMIT 1)
				AND NOT page_lang = " . $this->db->q($this->db->language) . "");

		// 5. remove obsolete menu items
		$this->db->sql_query("
			DELETE m.*
			FROM {$pref}menu m
				LEFT JOIN {$pref}page p ON (m.page_id = p.page_id)
			WHERE p.page_id IS NULL");

		// 6. remove obsolete supertag from page_link table
		$this->db->sql_query("
			ALTER TABLE {$pref}page_link DROP to_supertag");

		// 7. remove obsolete supertag from revision table
		$this->db->sql_query("
			ALTER TABLE {$pref}revision DROP supertag");
	}
}

%%