safe_alter('txp_css', "DROP INDEX name, ADD UNIQUE name (name(250))"); safe_alter('txp_file', "DROP INDEX filename, ADD UNIQUE filename (filename(250))"); safe_alter('txp_form', "DROP PRIMARY KEY, ADD PRIMARY KEY (name(250))"); safe_alter('txp_page', "DROP PRIMARY KEY, ADD PRIMARY KEY (name(250))"); safe_alter('txp_section', "DROP PRIMARY KEY, ADD PRIMARY KEY (name(250))"); safe_alter('txp_prefs', "DROP INDEX prefs_idx, ADD UNIQUE prefs_idx (prefs_id, name(185), user_name)"); safe_alter('txp_prefs', "DROP INDEX name, ADD INDEX name (name(250))"); safe_alter('textpattern', "DROP INDEX section_status_idx, ADD INDEX section_status_idx (Section(249), Status)"); safe_alter('textpattern', "DROP INDEX url_title_idx, ADD INDEX url_title_idx (url_title(250))"); // txp_discuss_nonce didn't have a primary key in 4.0.3, so we recreate its index in two steps safe_drop_index('txp_discuss_nonce', "PRIMARY"); safe_alter('txp_discuss_nonce', "ADD PRIMARY KEY (nonce(250))"); // Fix typo: textinput should be text_input safe_update('txp_prefs', "html = 'text_input'", "name = 'timezone_key'"); // Fix typo: position 40 should be 0 (because it's a hidden pref) safe_update('txp_prefs', "position = 0", "name = 'language'"); // Fix typo: position should be 60 instead of 30 (so it appears just below the site name) safe_update('txp_prefs', "position = 60", "name = 'site_slogan'"); // Enforce some table changes that happened after 4.0.3 but weren't part of update scripts until now safe_alter('txp_css', "MODIFY name VARCHAR(255) NOT NULL"); safe_alter('txp_lang', "MODIFY lang VARCHAR(16) NOT NULL"); safe_alter('txp_lang', "MODIFY name VARCHAR(64) NOT NULL"); safe_alter('txp_lang', "MODIFY event VARCHAR(64) NOT NULL"); safe_drop_index('txp_form', "name"); safe_drop_index('txp_page', "name"); safe_drop_index('txp_plugin', "name_2"); safe_drop_index('txp_section', "name"); // The txp_priv table was created for version 1.0, but never used nor created in later versions. safe_drop('txp_priv'); // Add generic token table. safe_create('txp_token', "\nid INT NOT NULL AUTO_INCREMENT,\nreference_id INT DEFAULT 0,\ntype VARCHAR(255) DEFAULT '',\nselector CHAR(12) DEFAULT '',\ntoken VARCHAR(255) DEFAULT '',\nexpires DATETIME DEFAULT '0000-00-00 00:00:00',\nPRIMARY KEY (id)\n");
safe_alter('txp_lang', "MODIFY event VARCHAR(64) NOT NULL"); safe_drop_index('txp_form', "name"); safe_drop_index('txp_page', "name"); safe_drop_index('txp_plugin', "name_2"); safe_drop_index('txp_section', "name"); // The txp_priv table was created for version 1.0, but never used nor created in later versions. safe_drop('txp_priv'); // Remove empty update files foreach (array('4.4.0', '4.4.1') as $v) { $file = txpath . DS . 'update' . DS . '_to_' . $v . '.php'; if (file_exists($file)) { unlink($file); } } // Add generic token table (dropping first, because of changes to the table setup) safe_drop('txp_token'); safe_create('txp_token', "\n id INT NOT NULL AUTO_INCREMENT,\n reference_id INT NOT NULL DEFAULT 0,\n type VARCHAR(255) NOT NULL DEFAULT '',\n selector VARCHAR(12) NOT NULL DEFAULT '',\n token VARCHAR(255) NOT NULL DEFAULT '',\n expires DATETIME NULL DEFAULT NULL,\n\n PRIMARY KEY (id)\n"); // Get rid of default zero dates to make MySQL 5.7 happy. safe_alter('textpattern', "MODIFY Posted DATETIME NOT NULL"); safe_alter('textpattern', "MODIFY Expires DATETIME NULL DEFAULT NULL"); safe_alter('textpattern', "MODIFY LastMod DATETIME NOT NULL"); safe_alter('textpattern', "MODIFY feed_time DATE NOT NULL"); //0000-00-00 safe_alter('txp_discuss', "MODIFY posted DATETIME NOT NULL"); safe_alter('txp_discuss_nonce', "MODIFY issue_time DATETIME NOT NULL"); safe_alter('txp_file', "MODIFY created DATETIME NOT NULL"); safe_alter('txp_file', "MODIFY modified DATETIME NOT NULL"); safe_alter('txp_image', "MODIFY date DATETIME NOT NULL"); safe_alter('txp_link', "MODIFY date DATETIME NOT NULL"); safe_alter('txp_log', "MODIFY time DATETIME NOT NULL"); safe_alter('txp_users', "MODIFY last_access DATETIME NULL DEFAULT NULL");