--- mailman_manager.install.old 2007-02-25 17:13:10.000000000 +1300 +++ mailman_manager.install 2007-02-25 20:55:28.000000000 +1300 @@ -5,31 +5,45 @@ switch ($GLOBALS['db_type']) { case 'mysql': case 'mysqli': - db_query("CREATE TABLE `mailman_lists` ( - `lid` tinyint(3) unsigned NOT NULL auto_increment, - `name` varchar(48) NOT NULL default '', - `command` varchar(72) NOT NULL default '', - `admin` varchar(48) default '', - `web` varchar(255) default '', - `webarch` varchar(255) default '', - PRIMARY KEY (`lid`) + db_query("CREATE TABLE mailman_lists ( + lid tinyint(3) unsigned NOT NULL auto_increment, + name varchar(48) NOT NULL default '', + command varchar(72) NOT NULL default '', + admin varchar(48) default '', + web varchar(255) default '', + webarch varchar(255) default '', + PRIMARY KEY (lid) )"); - db_query("CREATE TABLE `mailman_users` ( - `uid` int(10) NOT NULL default '0', - `lid` int(10) NOT NULL default '0', - `lstatus` int(10) NOT NULL default '0', - `lmail` varchar(36) NOT NULL default '', - `lpass` varchar(36) NOT NULL default '', - PRIMARY KEY (`uid`,`lid`) + db_query("CREATE TABLE {mailman_users} ( + uid int(10) NOT NULL default '0', + lid int(10) NOT NULL default '0', + lstatus int(10) NOT NULL default '0', + lmail varchar(36) NOT NULL default '', + lpass varchar(36) NOT NULL default '', + PRIMARY KEY (uid,lid) )"); break; case 'pgsql': + db_query("CREATE TABLE {mailman_lists} ( + lid SERIAL NOT NULL, + name text NOT NULL default '', + command text NOT NULL default '', + admin text default '', + web text default '', + webarch text default '', + PRIMARY KEY (lid) + )"); - // Pgsql requires keys and indexes to be defined separately. - // It's important to name the index as {tablename}_fieldname_idx - // (the trailing _idx!) so update scripts can be written easily + db_query("CREATE TABLE {mailman_users} ( + uid integer NOT NULL default 0, + lid integer NOT NULL default 0, + lstatus integer NOT NULL default 0, + lmail text NOT NULL default '', + lpass text NOT NULL default '', + PRIMARY KEY (uid, lid) + )"); } } @@ -39,6 +53,16 @@ switch ($GLOBALS['db_type']) { case 'pgsql': + + // Add web links: + $ret[] = update_sql("ALTER TABLE {mailman_lists} ADD COLUMN web TEXT"); + $ret[] = update_sql("ALTER TABLE {mailman_lists} ALTER COLUMN web SET DEFAULT ''"); + + $ret[] = update_sql("ALTER TABLE {mailman_lists} ADD COLUMN webarch text"); + $ret[] = update_sql("ALTER TABLE {mailman_lists} ALTER COLUMN webarch SET DEFAULT ''"); + + // Admin is text, not varchar, so it doesn't need patching + break; case 'mysql': @@ -54,4 +78,4 @@ return $ret; } -?> \ No newline at end of file +?>