Switches all tables to InnoDB.
authorStéphane Jacob <sj@m4x.org>
Sat, 23 Oct 2010 15:18:07 +0000 (17:18 +0200)
committerStéphane Jacob <sj@m4x.org>
Sat, 23 Oct 2010 15:18:40 +0000 (17:18 +0200)
Signed-off-by: Stéphane Jacob <sj@m4x.org>
upgrade/1.0.1/99_keys.sql.pre [new file with mode: 0644]
upgrade/1.0.1/innodb.sh
upgrade/1.0.1/update.sh

diff --git a/upgrade/1.0.1/99_keys.sql.pre b/upgrade/1.0.1/99_keys.sql.pre
new file mode 100644 (file)
index 0000000..0eca111
--- /dev/null
@@ -0,0 +1,44 @@
+ALTER TABLE account_auth_openid DROP KEY user_id_url_index;
+ALTER TABLE account_auth_openid ADD UNIQUE KEY user_id_url_index (uid, url(60));
+
+DROP TABLE IF EXISTS tmp_gapps_nicknames;
+CREATE TEMPORARY TABLE tmp_gapps_nicknames LIKE gapps_nicknames;
+INSERT INTO tmp_gapps_nicknames SELECT * FROM gapps_nicknames;
+DROP TABLE gapps_nicknames;
+CREATE TABLE gapps_nicknames (
+  l_userid INT(11) UNSIGNED DEFAULT NULL,
+  g_account_name VARCHAR(256) NOT NULL,
+  g_nickname VARCHAR(256) NOT NULL,
+  PRIMARY KEY (g_nickname(60)),
+  KEY g_account_name (g_account_name(60)),
+  KEY l_userid (l_userid)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+INSERT INTO gapps_nicknames SELECT * FROM tmp_gapps_nicknames;
+DROP TABLE IF EXISTS tmp_gapps_nicknames;
+
+DROP TABLE IF EXISTS tmp_gapps_accounts;
+CREATE TEMPORARY TABLE tmp_gapps_accounts LIKE gapps_accounts;
+INSERT INTO tmp_gapps_accounts SELECT * FROM gapps_accounts;
+DROP TABLE gapps_accounts;
+CREATE TABLE gapps_accounts (
+  l_userid INT(11) UNSIGNED DEFAULT NULL,
+  l_sync_password TINYINT(1) DEFAULT 1,
+  l_activate_mail_redirection TINYINT(1) DEFAULT 1,
+  g_account_id CHAR(16) DEFAULT NULL,
+  g_account_name VARCHAR(256) NOT NULL,
+  g_first_name VARCHAR(40) NOT NULL,
+  g_last_name VARCHAR(40) NOT NULL,
+  g_status ENUM('unprovisioned','disabled','active') DEFAULT 'unprovisioned',
+  g_admin TINYINT(1) DEFAULT NULL,
+  g_suspension VARCHAR(256) DEFAULT NULL,
+  r_disk_usage BIGINT(20) DEFAULT NULL,
+  r_creation DATE DEFAULT NULL,
+  r_last_login DATE DEFAULT NULL,
+  r_last_webmail DATE DEFAULT NULL,
+  PRIMARY KEY (g_account_name(60)),
+  KEY l_userid (l_userid)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+INSERT INTO gapps_accounts SELECT * FROM tmp_gapps_accounts;
+DROP TABLE IF EXISTS tmp_gapps_accounts;
+
+-- vim:set syntax=mysql:
index bb18cb8..f134bf1 100755 (executable)
@@ -4,7 +4,7 @@ changeEngine() {
     echo "ALTER TABLE $1 ENGINE = InnoDB;"
 }
 
-changeEngine 'account_auth_openid'
+changeEngine 'account_auth_openid'
 changeEngine 'account_lost_passwords'
 changeEngine 'account_profiles'
 changeEngine 'account_types'
@@ -28,8 +28,8 @@ changeEngine 'forum_innd'
 changeEngine 'forum_profiles'
 changeEngine 'forum_subs'
 changeEngine 'forums'
-changeEngine 'gapps_accounts'
-changeEngine 'gapps_nicknames'
+changeEngine 'gapps_accounts'
+changeEngine 'gapps_nicknames'
 changeEngine 'gapps_queue'
 changeEngine 'gapps_reporting'
 changeEngine 'geoloc_administrativeareas'
index d19e994..a7156f0 100755 (executable)
@@ -6,7 +6,10 @@
 [ "$DATABASE" != "x4dat" ] || die "Cannot target x4dat"
 copy_db
 
-echo "* switching engines to InnoDB"
+confirm "* Running pre-engine switch database upgrade script"
+mysql_run ./99_keys.sql.pre
+
+confirm "* switching engines to InnoDB"
 ./innodb.sh | mysql_pipe
 
 confirm "* Running database upgrade scripts"