SF.net SVN: postfixadmin:[469] trunk/upgrade.php
Brought to you by:
christian_boltz,
gingerdog
|
From: <chr...@us...> - 2008-10-31 10:24:34
|
Revision: 469
http://postfixadmin.svn.sourceforge.net/postfixadmin/?rev=469&view=rev
Author: christian_boltz
Date: 2008-10-31 10:24:23 +0000 (Fri, 31 Oct 2008)
Log Message:
-----------
upgrade.php:
- upgrade_469_mysql: fix "illegal mix of collations" by explicitely setting
the charset for all VARCHAR and TEXT fields.
http://sourceforge.net/tracker2/?func=detail&aid=1990191&group_id=191583&atid=937964
Modified Paths:
--------------
trunk/upgrade.php
Modified: trunk/upgrade.php
===================================================================
--- trunk/upgrade.php 2008-10-21 11:08:19 UTC (rev 468)
+++ trunk/upgrade.php 2008-10-31 10:24:23 UTC (rev 469)
@@ -934,3 +934,60 @@
$table_fetchmail = table_by_key('fetchmail');
db_query_parsed("ALTER TABLE $table_fetchmail ADD COLUMN ssl BOOLEAN NOT NULL DEFAULT false");
}
+
+function upgrade_469_mysql() {
+ $table_admin = table_by_key('admin');
+ $table_alias = table_by_key('alias');
+ $table_al_dom = table_by_key('alias_domain');
+ $table_domain = table_by_key('domain');
+ $table_dom_adm = table_by_key('domain_admins');
+ $table_fmail = table_by_key('fetchmail');
+ $table_mailbox = table_by_key('mailbox');
+ $table_log = table_by_key('log');
+
+ # tables were created without explicit charset before :-(
+ $all_sql = split("\n", trim("
+ ALTER TABLE `$table_admin` CHANGE `username` `username` VARCHAR( 255 ) {LATIN1} NOT NULL
+ ALTER TABLE `$table_admin` CHANGE `password` `password` VARCHAR( 255 ) {LATIN1} NOT NULL
+ ALTER TABLE `$table_admin` DEFAULT {LATIN1}
+ ALTER TABLE `$table_alias` CHANGE `address` `address` VARCHAR( 255 ) {LATIN1} NOT NULL
+ ALTER TABLE `$table_alias` CHANGE `goto` `goto` VARCHAR( 255 ) {LATIN1} NOT NULL
+ ALTER TABLE `$table_alias` CHANGE `domain` `domain` VARCHAR( 255 ) {LATIN1} NOT NULL
+ ALTER TABLE `$table_alias` DEFAULT {LATIN1}
+ ALTER TABLE `$table_al_dom` CHANGE `alias_domain` `alias_domain` VARCHAR( 255 ) {LATIN1} NOT NULL
+ ALTER TABLE `$table_al_dom` CHANGE `target_domain` `target_domain` VARCHAR( 255 ) {LATIN1} NOT NULL
+ ALTER TABLE `$table_al_dom` DEFAULT {LATIN1}
+ ALTER TABLE `$table_domain` CHANGE `domain` `domain` VARCHAR( 255 ) {LATIN1} NOT NULL
+ ALTER TABLE `$table_domain` CHANGE `transport` `transport` VARCHAR( 255 ) {LATIN1} NOT NULL
+ ALTER TABLE `$table_domain` DEFAULT {LATIN1}
+ ALTER TABLE `$table_dom_adm` CHANGE `username` `username` VARCHAR( 255 ) {LATIN1} NOT NULL
+ ALTER TABLE `$table_dom_adm` CHANGE `domain` `domain` VARCHAR( 255 ) {LATIN1} NOT NULL
+ ALTER TABLE `$table_dom_adm` DEFAULT {LATIN1}
+ ALTER TABLE `$table_log` CHANGE `username` `username` VARCHAR( 255 ) {LATIN1} NOT NULL
+ ALTER TABLE `$table_log` CHANGE `domain` `domain` VARCHAR( 255 ) {LATIN1} NOT NULL
+ ALTER TABLE `$table_log` CHANGE `action` `action` VARCHAR( 255 ) {LATIN1} NOT NULL
+ ALTER TABLE `$table_log` CHANGE `data` `data` VARCHAR( 255 ) {LATIN1} NOT NULL
+ ALTER TABLE `$table_log` DEFAULT {LATIN1}
+ ALTER TABLE `$table_mailbox` CHANGE `username` `username` VARCHAR( 255 ) {LATIN1} NOT NULL
+ ALTER TABLE `$table_mailbox` CHANGE `password` `password` VARCHAR( 255 ) {LATIN1} NOT NULL
+ ALTER TABLE `$table_mailbox` CHANGE `maildir` `maildir` VARCHAR( 255 ) {LATIN1} NOT NULL
+ ALTER TABLE `$table_mailbox` CHANGE `domain` `domain` VARCHAR( 255 ) {LATIN1} NOT NULL
+ ALTER TABLE `$table_mailbox` DEFAULT {LATIN1}
+ ALTER TABLE `$table_fmail` CHANGE `mailbox` `mailbox` VARCHAR( 255 ) {LATIN1} NOT NULL
+ ALTER TABLE `$table_fmail` CHANGE `src_server` `src_server` VARCHAR( 255 ) {LATIN1} NOT NULL
+ ALTER TABLE `$table_fmail` CHANGE `src_user` `src_user` VARCHAR( 255 ) {LATIN1} NOT NULL
+ ALTER TABLE `$table_fmail` CHANGE `src_password` `src_password` VARCHAR( 255 ) {LATIN1} NOT NULL
+ ALTER TABLE `$table_fmail` CHANGE `src_folder` `src_folder` VARCHAR( 255 ) {LATIN1} NOT NULL
+ ALTER TABLE `$table_fmail` CHANGE `mda` `mda` VARCHAR( 255 ) {LATIN1} NOT NULL
+ ALTER TABLE `$table_fmail` CHANGE `mailbox` `mailbox` VARCHAR( 255 ) {LATIN1} NOT NULL
+ ALTER TABLE `$table_fmail` CHANGE `extra_options` `extra_options` TEXT {LATIN1} NULL DEFAULT NULL
+ ALTER TABLE `$table_fmail` CHANGE `returned_text` `returned_text` TEXT {LATIN1} NULL DEFAULT NULL
+ ALTER TABLE `$table_fmail` DEFAULT {LATIN1}
+ "));
+
+ foreach ($all_sql as $sql) {
+ $result = db_query_parsed($sql);
+ }
+}
+
+
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|