SF.net SVN: postfixadmin: [340] trunk/upgrade.php
Brought to you by:
christian_boltz,
gingerdog
From: <Gin...@us...> - 2008-04-23 15:25:38
|
Revision: 340 http://postfixadmin.svn.sourceforge.net/postfixadmin/?rev=340&view=rev Author: GingerDog Date: 2008-04-23 08:25:31 -0700 (Wed, 23 Apr 2008) Log Message: ----------- upgrade.php: fix issue of mysql tables not being created on initial install Modified Paths: -------------- trunk/upgrade.php Modified: trunk/upgrade.php =================================================================== --- trunk/upgrade.php 2008-04-22 23:05:29 UTC (rev 339) +++ trunk/upgrade.php 2008-04-23 15:25:31 UTC (rev 340) @@ -220,6 +220,105 @@ echo "upgrade_1"; } +function upgrade_1_mysql() { + // CREATE MYSQL DATABASE TABLES. + $admin = table_by_key('admin'); + $alias = table_by_key('alias'); + $domain = table_by_key('domain'); + $domain_admins = table_by_key('domain_admins'); + $log = table_by_key('log'); + $mailbox = table_by_key('mailbox'); + $vacation = table_by_key('vacation'); + + $sql = array(); + $sql[] = " + CREATE TABLE {IF_NOT_EXISTS} $admin ( + `username` varchar(255) NOT NULL default '', + `password` varchar(255) NOT NULL default '', + `created` datetime NOT NULL default '0000-00-00 00:00:00', + `modified` datetime NOT NULL default '0000-00-00 00:00:00', + `active` tinyint(1) NOT NULL default '1', + PRIMARY KEY (`username`) + ) TYPE=MyISAM COMMENT='Postfix Admin - Virtual Admins';"; + + $sql[] = " + CREATE TABLE {IF_NOT_EXISTS} $alias ( + `address` varchar(255) NOT NULL default '', + `goto` text NOT NULL, + `domain` varchar(255) NOT NULL default '', + `created` datetime NOT NULL default '0000-00-00 00:00:00', + `modified` datetime NOT NULL default '0000-00-00 00:00:00', + `active` tinyint(1) NOT NULL default '1', + PRIMARY KEY (`address`) + ) TYPE=MyISAM COMMENT='Postfix Admin - Virtual Aliases'; "; + + $sql[] = " + CREATE TABLE {IF_NOT_EXISTS} $domain ( + `domain` varchar(255) NOT NULL default '', + `description` varchar(255) NOT NULL default '', + `aliases` int(10) NOT NULL default '0', + `mailboxes` int(10) NOT NULL default '0', + `maxquota` bigint(20) NOT NULL default '0', + `quota` bigint(20) NOT NULL default '0', + `transport` varchar(255) default NULL, + `backupmx` tinyint(1) NOT NULL default '0', + `created` datetime NOT NULL default '0000-00-00 00:00:00', + `modified` datetime NOT NULL default '0000-00-00 00:00:00', + `active` tinyint(1) NOT NULL default '1', + PRIMARY KEY (`domain`) + ) TYPE=MyISAM COMMENT='Postfix Admin - Virtual Domains'; "; + + $sql[] = " + CREATE TABLE {IF_NOT_EXISTS} $domain_admins ( + `username` varchar(255) NOT NULL default '', + `domain` varchar(255) NOT NULL default '', + `created` datetime NOT NULL default '0000-00-00 00:00:00', + `active` tinyint(1) NOT NULL default '1', + KEY username (`username`) + ) TYPE=MyISAM COMMENT='Postfix Admin - Domain Admins';"; + + $sql[] = " + CREATE TABLE {IF_NOT_EXISTS} $log ( + `timestamp` datetime NOT NULL default '0000-00-00 00:00:00', + `username` varchar(255) NOT NULL default '', + `domain` varchar(255) NOT NULL default '', + `action` varchar(255) NOT NULL default '', + `data` varchar(255) NOT NULL default '', + KEY timestamp (`timestamp`) + ) TYPE=MyISAM COMMENT='Postfix Admin - Log';"; + + $sql[] = " + CREATE TABLE {IF_NOT_EXISTS} $mailbox ( + `username` varchar(255) NOT NULL default '', + `password` varchar(255) NOT NULL default '', + `name` varchar(255) NOT NULL default '', + `maildir` varchar(255) NOT NULL default '', + `quota` bigint(20) NOT NULL default '0', + `domain` varchar(255) NOT NULL default '', + `created` datetime NOT NULL default '0000-00-00 00:00:00', + `modified` datetime NOT NULL default '0000-00-00 00:00:00', + `active` tinyint(1) NOT NULL default '1', + PRIMARY KEY (`username`) + ) TYPE=MyISAM COMMENT='Postfix Admin - Virtual Mailboxes';"; + + $sql[] = " + CREATE TABLE {IF_NOT_EXISTS} $vacation ( + email varchar(255) NOT NULL default '', + subject varchar(255) NOT NULL default '', + body text NOT NULL, + cache text NOT NULL, + domain varchar(255) NOT NULL default '', + created datetime NOT NULL default '0000-00-00 00:00:00', + active tinyint(4) NOT NULL default '1', + PRIMARY KEY (email), + KEY email (email) + ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci TYPE=InnoDB COMMENT='Postfix Admin - Virtual Vacation' ;"; + + foreach($sql as $query) { + db_query_parsed($query); + } +} + function upgrade_2_mysql() { # upgrade pre-2.1 database # from TABLE_BACKUP_MX.TXT @@ -671,7 +770,7 @@ on_vacation varchar(255) NOT NULL, notified varchar(255) NOT NULL, notified_at timestamp NOT NULL default CURRENT_TIMESTAMP, - PRIMARY KEY on_vacation (`on_vacation`, `notified`), + PRIMARY KEY on_vacation (`on_vacation`, `notified`), CONSTRAINT `vacation_notification_pkey` FOREIGN KEY (`on_vacation`) REFERENCES vacation(`email`) ON DELETE CASCADE ) @@ -701,18 +800,3 @@ FOREIGN KEY (`on_vacation`) REFERENCES vacation(`email`) ON DELETE CASCADE "); } - -/* - TODO - - Database changes that should be done: - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -MySQL: -* vacation: - - DROP INDEX email - - 'cache' field might be obsolete with vacation_notification - needs to be checked! -* charset of equal fields MUST be the same (see bugreport) - */ - - This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |