SF.net SVN: postfixadmin: [324] trunk
Brought to you by:
christian_boltz,
gingerdog
|
From: <Gin...@us...> - 2008-04-10 10:17:20
|
Revision: 324
http://postfixadmin.svn.sourceforge.net/postfixadmin/?rev=324&view=rev
Author: GingerDog
Date: 2008-04-10 03:17:23 -0700 (Thu, 10 Apr 2008)
Log Message:
-----------
upgrade.php: support creating PG db if it does nto exist; this means DATABASE_PGSQL.TXT is now obsolete
Modified Paths:
--------------
trunk/upgrade.php
Removed Paths:
-------------
trunk/DATABASE_PGSQL.TXT
Deleted: trunk/DATABASE_PGSQL.TXT
===================================================================
--- trunk/DATABASE_PGSQL.TXT 2008-04-10 09:02:37 UTC (rev 323)
+++ trunk/DATABASE_PGSQL.TXT 2008-04-10 10:17:23 UTC (rev 324)
@@ -1,169 +0,0 @@
--- Postfix Admin Release 2.x --
-----------------------------------------------------------
---
--- Copyright (c) 2002 - 2005 High5!
--- Created by: Mischa Peters <mischa at high5 dot net>
---
--- This is the complete database structure for Postfix Admin.
--- If you are installing from scratch you can use this file otherwise you
--- need to use the TABLE_CHANGES.TXT or TABLE_BACKUP_MX.TXT that comes with Postfix Admin.
--- You can find these in DOCUMENTS/
---
--- There are 2 entries for a database user in the file.
--- One you can use for Postfix and one for Postfix Admin.
---
--- You can create the database from the shell with:
--- createuser -P postfix
--- createuser -P postfixadmin
--- createuser -P vacation
--- createdb postfix
--- psql postfix
--- postfix=# \i postfix.sql
--- postfix=# \q
--- exit
---
--- Postfix / PgSQL
-
---
-DROP TABLE admin,alias,domain,domain_admins,log,mailbox CASCADE;
---
-
---
--- Table structure for table domain
---
-CREATE TABLE domain (
- domain character varying(255) NOT NULL,
- description character varying(255) NOT NULL default '',
- aliases integer NOT NULL default 0,
- mailboxes integer NOT NULL default 0,
- maxquota integer NOT NULL default 0,
- quota integer NOT NULL default 0,
- transport character varying(255) default NULL,
- backupmx boolean NOT NULL default false,
- created timestamp with time zone default now(),
- modified timestamp with time zone default now(),
- active boolean NOT NULL default true,
- Constraint "domain_key" Primary Key ("domain")
-);
-CREATE INDEX domain_domain_active ON domain(domain,active);
-COMMENT ON TABLE domain IS 'Postfix Admin - Virtual Domains';
-
---
--- Table structure for table admin
---
-CREATE TABLE "admin" (
- "username" character varying(255) NOT NULL,
- "password" character varying(255) NOT NULL default '',
- "created" timestamp with time zone default now(),
- "modified" timestamp with time zone default now(),
- "active" boolean NOT NULL default true,
- Constraint "admin_key" Primary Key ("username")
-);
-COMMENT ON TABLE admin IS 'Postfix Admin - Virtual Admins';
---
--- Table structure for table alias
---
-CREATE TABLE alias (
- address character varying(255) NOT NULL,
- goto text NOT NULL,
- domain character varying(255) NOT NULL REFERENCES domain,
- created timestamp with time zone default now(),
- modified timestamp with time zone default now(),
- active boolean NOT NULL default true,
- Constraint "alias_key" Primary Key ("address")
-);
-CREATE INDEX alias_address_active ON alias(address,active);
-COMMENT ON TABLE alias IS 'Postfix Admin - Virtual Aliases';
-
---
--- Table structure for table domain_admins
---
-CREATE TABLE domain_admins (
- username character varying(255) NOT NULL,
- domain character varying(255) NOT NULL REFERENCES domain,
- created timestamp with time zone default now(),
- active boolean NOT NULL default true
-);
-COMMENT ON TABLE domain_admins IS 'Postfix Admin - Domain Admins';
-
---
--- Table structure for table log
---
-CREATE TABLE log (
- timestamp timestamp with time zone default now(),
- username character varying(255) NOT NULL default '',
- domain character varying(255) NOT NULL default '',
- action character varying(255) NOT NULL default '',
- data text NOT NULL default ''
-);
-COMMENT ON TABLE log IS 'Postfix Admin - Log';
-
---
--- Table structure for table mailbox
---
-CREATE TABLE mailbox (
- username character varying(255) NOT NULL,
- password character varying(255) NOT NULL default '',
- name character varying(255) NOT NULL default '',
- maildir character varying(255) NOT NULL default '',
- quota integer NOT NULL default 0,
- domain character varying(255) NOT NULL REFERENCES domain,
- created timestamp with time zone default now(),
- modified timestamp with time zone default now(),
- active boolean NOT NULL default true,
- Constraint "mailbox_key" Primary Key ("username")
-);
-CREATE INDEX mailbox_username_active ON mailbox(username,active);
-COMMENT ON TABLE mailbox IS 'Postfix Admin - Virtual Mailboxes';
-
-
-
-GRANT
- SELECT,INSERT,UPDATE,DELETE
-ON
- admin,
- alias,
- domain,
- domain_admins,
- log,
- mailbox
-TO postfixadmin;
-
-GRANT SELECT ON alias,domain,mailbox TO postfix;
-
--- Vacation Stuff ...
-
-DROP TABLE vacation,vacation_notification CASCADE;
-
-CREATE TABLE vacation (
- email character varying(255) PRIMARY KEY,
- subject character varying(255) NOT NULL DEFAULT '',
- body text NOT NULL DEFAULT '',
- cache text NOT NULL DEFAULT '',
- "domain" character varying(255) NOT NULL REFERENCES "domain",
- created timestamp with time zone DEFAULT now(),
- active boolean DEFAULT true NOT NULL
-);
-CREATE INDEX vacation_email_active ON vacation(email,active);
-
-CREATE TABLE vacation_notification (
- on_vacation character varying(255) NOT NULL REFERENCES vacation(email) ON DELETE CASCADE,
- notified character varying(255) NOT NULL,
- notified_at timestamp with time zone NOT NULL DEFAULT now(),
- CONSTRAINT vacation_notification_pkey primary key(on_vacation,notified)
-);
--- Note: It's important that the primary key constraint on vacation_notification
--- be given a name which includes the '_pkey' substring (default PostgreSQL naming
--- for primary keys). The vacation-script looks for this substring to
--- distinguish between an acceptable and non-acceptable error.
-
-
-GRANT
- SELECT,INSERT,UPDATE,DELETE
-ON
- vacation
-TO postfixadmin;
-
-GRANT SELECT ON vacation TO vacation;
-GRANT SELECT,INSERT,DELETE ON vacation_notification TO vacation;
-
Modified: trunk/upgrade.php
===================================================================
--- trunk/upgrade.php 2008-04-10 09:02:37 UTC (rev 323)
+++ trunk/upgrade.php 2008-04-10 10:17:23 UTC (rev 324)
@@ -97,7 +97,7 @@
if ($current_version >= $target_version) {
# already up to date
- echo "up to date";
+ echo "Database is up to date";
return true;
}
@@ -232,14 +232,135 @@
}
function upgrade_2_pgsql() {
+
+ if(!_pgsql_object_exists(table_by_key('domain'))) {
+ db_query_parsed("
+ CREATE TABLE " . table_by_key('domain') . " (
+ domain character varying(255) NOT NULL,
+ description character varying(255) NOT NULL default '',
+ aliases integer NOT NULL default 0,
+ mailboxes integer NOT NULL default 0,
+ maxquota integer NOT NULL default 0,
+ quota integer NOT NULL default 0,
+ transport character varying(255) default NULL,
+ backupmx boolean NOT NULL default false,
+ created timestamp with time zone default now(),
+ modified timestamp with time zone default now(),
+ active boolean NOT NULL default true,
+ Constraint \"domain_key\" Primary Key (\"domain\")
+ );
+ CREATE INDEX domain_domain_active ON " . table_by_key('domain') . "(domain,active);
+ COMMENT ON TABLE " . table_by_key('domain') . " IS 'Postfix Admin - Virtual Domains';
+ ");
+ }
+ if(!_pgsql_object_exists(table_by_key('admin'))) {
+ db_query_parsed('
+ CREATE TABLE ' . table_by_key("admin") . ' (
+ "username" character varying(255) NOT NULL,
+ "password" character varying(255) NOT NULL default \'\',
+ "created" timestamp with time zone default now(),
+ "modified" timestamp with time zone default now(),
+ "active" boolean NOT NULL default true,
+ Constraint "admin_key" Primary Key ("username")
+ );' . "
+ COMMENT ON TABLE " . table_by_key('admin') . " IS 'Postfix Admin - Virtual Admins';
+ ");
+ }
+
+ if(!_pgsql_object_exists(table_by_key('alias'))) {
+ db_query_parsed('
+ CREATE TABLE ' . table_by_key('alias') . ' (
+ address character varying(255) NOT NULL,
+ goto text NOT NULL,
+ domain character varying(255) NOT NULL REFERENCES domain,
+ created timestamp with time zone default now(),
+ modified timestamp with time zone default now(),
+ active boolean NOT NULL default true,
+ Constraint "alias_key" Primary Key ("address")
+ );
+ CREATE INDEX alias_address_active ON ' . table_by_key('alias') . '(address,active);
+ COMMENT ON TABLE ' . table_by_key('alias') . ' IS \'Postfix Admin - Virtual Aliases\';
+ ');
+ }
+
+ if(!_pgsql_object_exists(table_by_key('domain_admins'))) {
+ db_query_parsed('
+ CREATE TABLE ' . table_by_key('domain_admins') . ' (
+ username character varying(255) NOT NULL,
+ domain character varying(255) NOT NULL REFERENCES domain,
+ created timestamp with time zone default now(),
+ active boolean NOT NULL default true
+ );
+ COMMENT ON TABLE ' . table_by_key('domain_admins') . ' IS \'Postfix Admin - Domain Admins\';
+ ');
+ }
+
+ if(!_pgsql_object_exists(table_by_key('log'))) {
+ db_query_parsed('
+ CREATE TABLE ' . table_by_key('log') . ' (
+ timestamp timestamp with time zone default now(),
+ username character varying(255) NOT NULL default \'\',
+ domain character varying(255) NOT NULL default \'\',
+ action character varying(255) NOT NULL default \'\',
+ data text NOT NULL default \'\'
+ );
+ COMMENT ON TABLE ' . table_by_key('log') . ' IS \'Postfix Admin - Log\';
+ ');
+ }
+
+ if(!_pgsql_object_exists(table_by_key('mailbox'))) {
+ db_query_parsed('
+ CREATE TABLE mailbox (
+ username character varying(255) NOT NULL,
+ password character varying(255) NOT NULL default \'\',
+ name character varying(255) NOT NULL default \'\',
+ maildir character varying(255) NOT NULL default \'\',
+ quota integer NOT NULL default 0,
+ domain character varying(255) NOT NULL REFERENCES domain,
+ created timestamp with time zone default now(),
+ modified timestamp with time zone default now(),
+ active boolean NOT NULL default true,
+ Constraint "mailbox_key" Primary Key ("username")
+ );
+ CREATE INDEX mailbox_username_active ON ' . table_by_key('mailbox') . '(username,active);
+ COMMENT ON TABLE ' . table_by_key('mailbox') . ' IS \'Postfix Admin - Virtual Mailboxes\';
+ ');
+ }
+
+ if(!_pgsql_object_exists(table_by_key('vacation'))) {
+ db_query_parsed('
+ CREATE TABLE ' . table_by_key('vacation') . ' (
+ email character varying(255) PRIMARY KEY,
+ subject character varying(255) NOT NULL DEFAULT \'\',
+ body text NOT NULL DEFAULT \'\',
+ cache text NOT NULL DEFAULT \'\',
+ "domain" character varying(255) NOT NULL REFERENCES "domain",
+ created timestamp with time zone DEFAULT now(),
+ active boolean DEFAULT true NOT NULL
+ );
+ CREATE INDEX vacation_email_active ON ' . table_by_key('vacation') . '(email,active);');
+ }
+
+ if(!_pgsql_object_exists(table_by_key('vacation_notification'))) {
+ db_query_parsed('
+ CREATE TABLE ' . table_by_key('vacation_notification') . ' (
+ on_vacation character varying(255) NOT NULL REFERENCES vacation(email) ON DELETE CASCADE,
+ notified character varying(255) NOT NULL,
+ notified_at timestamp with time zone NOT NULL DEFAULT now(),
+ CONSTRAINT vacation_notification_pkey primary key(on_vacation,notified)
+ );
+ ');
+ }
+
+ // this handles anyone who is upgrading... (and should have no impact on new installees)
$table_domain = table_by_key ('domain');
$result = db_query_parsed("ALTER TABLE $table_domain ADD COLUMN transport VARCHAR(255)", TRUE);
$result = db_query_parsed("ALTER TABLE $table_domain ADD COLUMN backupmx BOOLEAN DEFAULT false", TRUE);
}
function upgrade_3_mysql() {
-# upgrade pre-2.1 database
-# from TABLE_CHANGES.TXT
+ # upgrade pre-2.1 database
+ # from TABLE_CHANGES.TXT
$table_admin = table_by_key ('admin');
$table_alias = table_by_key ('alias');
$table_domain = table_by_key ('domain');
@@ -249,26 +370,26 @@
// these will not work on PostgreSQL; syntax is :
// ALTER TABLE foo RENAME f1 TO f2
$all_sql = split("\n", trim("
- ALTER TABLE $table_admin {RENAME_COLUMN} create_date created DATETIME DEFAULT '0000-00-00 00:00:00' NOT NULL;
- ALTER TABLE $table_admin {RENAME_COLUMN} change_date modified DATETIME DEFAULT '0000-00-00 00:00:00' NOT NULL;
- ALTER TABLE $table_alias {RENAME_COLUMN} create_date created DATETIME DEFAULT '0000-00-00 00:00:00' NOT NULL;
- ALTER TABLE $table_alias {RENAME_COLUMN} change_date modified DATETIME DEFAULT '0000-00-00 00:00:00' NOT NULL;
- ALTER TABLE $table_domain {RENAME_COLUMN} create_date created DATETIME DEFAULT '0000-00-00 00:00:00' NOT NULL;
- ALTER TABLE $table_domain {RENAME_COLUMN} change_date modified DATETIME DEFAULT '0000-00-00 00:00:00' NOT NULL;
- ALTER TABLE $table_domain ADD COLUMN aliases INT(10) DEFAULT '-1' NOT NULL AFTER description;
- ALTER TABLE $table_domain ADD COLUMN mailboxes INT(10) DEFAULT '-1' NOT NULL AFTER aliases;
- ALTER TABLE $table_domain ADD COLUMN maxquota INT(10) DEFAULT '-1' NOT NULL AFTER mailboxes;
- ALTER TABLE $table_domain ADD COLUMN transport VARCHAR(255) AFTER maxquota;
- ALTER TABLE $table_domain ADD COLUMN backupmx TINYINT(1) DEFAULT '0' NOT NULL AFTER transport;
- ALTER TABLE $table_mailbox {RENAME_COLUMN} create_date created DATETIME DEFAULT '0000-00-00 00:00:00' NOT NULL;
- ALTER TABLE $table_mailbox {RENAME_COLUMN} change_date modified DATETIME DEFAULT '0000-00-00 00:00:00' NOT NULL;
- ALTER TABLE $table_mailbox ADD COLUMN quota INT(10) DEFAULT '-1' NOT NULL AFTER maildir;
- ALTER TABLE $table_vacation ADD COLUMN domain VARCHAR(255) DEFAULT '' NOT NULL AFTER cache;
- ALTER TABLE $table_vacation ADD COLUMN created DATETIME DEFAULT '0000-00-00 00:00:00' NOT NULL AFTER domain;
- ALTER TABLE $table_vacation ADD COLUMN active TINYINT(1) DEFAULT '1' NOT NULL AFTER created;
- ALTER TABLE $table_vacation DROP PRIMARY KEY
- ALTER TABLE $table_vacation ADD PRIMARY KEY(email)
- UPDATE $table_vacation SET domain=SUBSTRING_INDEX(email, '@', -1) WHERE email=email;
+ ALTER TABLE $table_admin {RENAME_COLUMN} create_date created DATETIME DEFAULT '0000-00-00 00:00:00' NOT NULL;
+ ALTER TABLE $table_admin {RENAME_COLUMN} change_date modified DATETIME DEFAULT '0000-00-00 00:00:00' NOT NULL;
+ ALTER TABLE $table_alias {RENAME_COLUMN} create_date created DATETIME DEFAULT '0000-00-00 00:00:00' NOT NULL;
+ ALTER TABLE $table_alias {RENAME_COLUMN} change_date modified DATETIME DEFAULT '0000-00-00 00:00:00' NOT NULL;
+ ALTER TABLE $table_domain {RENAME_COLUMN} create_date created DATETIME DEFAULT '0000-00-00 00:00:00' NOT NULL;
+ ALTER TABLE $table_domain {RENAME_COLUMN} change_date modified DATETIME DEFAULT '0000-00-00 00:00:00' NOT NULL;
+ ALTER TABLE $table_domain ADD COLUMN aliases INT(10) DEFAULT '-1' NOT NULL AFTER description;
+ ALTER TABLE $table_domain ADD COLUMN mailboxes INT(10) DEFAULT '-1' NOT NULL AFTER aliases;
+ ALTER TABLE $table_domain ADD COLUMN maxquota INT(10) DEFAULT '-1' NOT NULL AFTER mailboxes;
+ ALTER TABLE $table_domain ADD COLUMN transport VARCHAR(255) AFTER maxquota;
+ ALTER TABLE $table_domain ADD COLUMN backupmx TINYINT(1) DEFAULT '0' NOT NULL AFTER transport;
+ ALTER TABLE $table_mailbox {RENAME_COLUMN} create_date created DATETIME DEFAULT '0000-00-00 00:00:00' NOT NULL;
+ ALTER TABLE $table_mailbox {RENAME_COLUMN} change_date modified DATETIME DEFAULT '0000-00-00 00:00:00' NOT NULL;
+ ALTER TABLE $table_mailbox ADD COLUMN quota INT(10) DEFAULT '-1' NOT NULL AFTER maildir;
+ ALTER TABLE $table_vacation ADD COLUMN domain VARCHAR(255) DEFAULT '' NOT NULL AFTER cache;
+ ALTER TABLE $table_vacation ADD COLUMN created DATETIME DEFAULT '0000-00-00 00:00:00' NOT NULL AFTER domain;
+ ALTER TABLE $table_vacation ADD COLUMN active TINYINT(1) DEFAULT '1' NOT NULL AFTER created;
+ ALTER TABLE $table_vacation DROP PRIMARY KEY
+ ALTER TABLE $table_vacation ADD PRIMARY KEY(email)
+ UPDATE $table_vacation SET domain=SUBSTRING_INDEX(email, '@', -1) WHERE email=email;
"));
foreach ($all_sql as $sql) {
@@ -279,7 +400,7 @@
}
function upgrade_4_mysql() { # MySQL only
-# changes between 2.1 and moving to sourceforge
+ # changes between 2.1 and moving to sourceforge
$table_domain = table_by_key ('domain');
$result = db_query_parsed("ALTER TABLE $table_domain ADD COLUMN quota int(10) NOT NULL default '0' AFTER maxquota", TRUE);
# Possible errors that can be ignored:
@@ -306,7 +427,7 @@
if(!_pgsql_object_exists('domain_domain_active')) {
$result = db_query_parsed("CREATE INDEX domain_domain_active ON domain(domain,active)");
}
-
+
$result = db_query_parsed("ALTER TABLE $table_domain_admins ALTER COLUMN domain DROP DEFAULT");
$result = db_query_parsed("ALTER TABLE $table_alias ALTER COLUMN address DROP DEFAULT");
$result = db_query_parsed("ALTER TABLE $table_alias ALTER COLUMN domain DROP DEFAULT");
@@ -319,57 +440,57 @@
$result = db_query_parsed("ALTER TABLE $table_domain_admins ALTER COLUMN domain DROP DEFAULT");
$result = db_query_parsed("
- BEGIN;
- ALTER TABLE $table_log RENAME COLUMN data TO data_old;
- ALTER TABLE $table_log ADD COLUMN data text NOT NULL default '';
- UPDATE $table_log SET data = CAST(data_old AS text);
- ALTER TABLE $table_log DROP COLUMN data_old;
- COMMIT;");
+BEGIN;
+ALTER TABLE $table_log RENAME COLUMN data TO data_old;
+ALTER TABLE $table_log ADD COLUMN data text NOT NULL default '';
+UPDATE $table_log SET data = CAST(data_old AS text);
+ALTER TABLE $table_log DROP COLUMN data_old;
+COMMIT;");
- $result = db_query_parsed("ALTER TABLE $table_mailbox ALTER COLUMN username DROP DEFAULT");
- $result = db_query_parsed("ALTER TABLE $table_mailbox ALTER COLUMN domain DROP DEFAULT");
+$result = db_query_parsed("ALTER TABLE $table_mailbox ALTER COLUMN username DROP DEFAULT");
+$result = db_query_parsed("ALTER TABLE $table_mailbox ALTER COLUMN domain DROP DEFAULT");
- $result = db_query_parsed("
- BEGIN;
- ALTER TABLE $table_mailbox RENAME COLUMN domain TO domain_old;
- ALTER TABLE $table_mailbox ADD COLUMN domain varchar(255) REFERENCES domain (domain);
- UPDATE $table_mailbox SET domain = domain_old;
- ALTER TABLE $table_mailbox DROP COLUMN domain_old;
- COMMIT;"
- );
- if(!_pgsql_object_exists('mailbox_username_active')) {
- db_query_parsed('CREATE INDEX mailbox_username_active ON mailbox(username,active)');
- }
+$result = db_query_parsed("
+BEGIN;
+ALTER TABLE $table_mailbox RENAME COLUMN domain TO domain_old;
+ALTER TABLE $table_mailbox ADD COLUMN domain varchar(255) REFERENCES domain (domain);
+UPDATE $table_mailbox SET domain = domain_old;
+ALTER TABLE $table_mailbox DROP COLUMN domain_old;
+COMMIT;"
+);
+if(!_pgsql_object_exists('mailbox_username_active')) {
+ db_query_parsed('CREATE INDEX mailbox_username_active ON mailbox(username,active)');
+}
- $result = db_query_parsed("ALTER TABLE $table_vacation ALTER COLUMN body SET DEFAULT ''");
- if(_pgsql_field_exists($table_vacation, 'cache')) {
- $result = db_query_parsed("ALTER TABLE $table_vacation DROP COLUMN cache");
- }
+$result = db_query_parsed("ALTER TABLE $table_vacation ALTER COLUMN body SET DEFAULT ''");
+if(_pgsql_field_exists($table_vacation, 'cache')) {
+ $result = db_query_parsed("ALTER TABLE $table_vacation DROP COLUMN cache");
+}
- $result = db_query_parsed("
- BEGIN;
- ALTER TABLE $table_vacation RENAME COLUMN domain to domain_old;
- ALTER TABLE $table_vacation ADD COLUMN domain varchar(255) REFERENCES domain;
- UPDATE $table_vacation SET domain = domain_old;
- ALTER TABLE $table_vacation DROP COLUMN domain_old;
- COMMIT;
- ");
+$result = db_query_parsed("
+BEGIN;
+ALTER TABLE $table_vacation RENAME COLUMN domain to domain_old;
+ALTER TABLE $table_vacation ADD COLUMN domain varchar(255) REFERENCES domain;
+UPDATE $table_vacation SET domain = domain_old;
+ALTER TABLE $table_vacation DROP COLUMN domain_old;
+COMMIT;
+");
- if(!_pgsql_object_exists('vacation_email_active')) {
- $result = db_query_parsed("CREATE INDEX vacation_email_active ON vacation(email,active)");
- }
+if(!_pgsql_object_exists('vacation_email_active')) {
+ $result = db_query_parsed("CREATE INDEX vacation_email_active ON vacation(email,active)");
+}
- if(!_pgsql_object_exists('vacation_notification')) {
- $result = db_query_parsed("
- CREATE TABLE vacation_notification (
+if(!_pgsql_object_exists('vacation_notification')) {
+ $result = db_query_parsed("
+ CREATE TABLE vacation_notification (
on_vacation character varying(255) NOT NULL REFERENCES vacation(email) ON DELETE CASCADE,
notified character varying(255) NOT NULL,
notified_at timestamp with time zone NOT NULL DEFAULT now(),
- CONSTRAINT vacation_notification_pkey primary key(on_vacation,notified)
- );");
- }
+ CONSTRAINT vacation_notification_pkey primary key(on_vacation,notified)
+);");
}
+}
# Possible errors that can be ignored:
@@ -389,97 +510,97 @@
$result = db_query_parsed("
CREATE TABLE {IF_NOT_EXISTS} `" . table_by_key('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`),
- KEY username (`username`)
- ) TYPE=MyISAM DEFAULT {LATIN1} COMMENT='Postfix Admin - Virtual Admins';
- ");
+ `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`),
+ KEY username (`username`)
+) TYPE=MyISAM DEFAULT {LATIN1} COMMENT='Postfix Admin - Virtual Admins';
+");
- $result = db_query_parsed("
- CREATE TABLE {IF_NOT_EXISTS} `" . table_by_key('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`),
- KEY address (`address`)
+$result = db_query_parsed("
+ CREATE TABLE {IF_NOT_EXISTS} `" . table_by_key('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`),
+KEY address (`address`)
) TYPE=MyISAM DEFAULT {LATIN1} COMMENT='Postfix Admin - Virtual Aliases';
- ");
+");
- $result = db_query_parsed("
- CREATE TABLE {IF_NOT_EXISTS} `" . table_by_key('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` int(10) NOT NULL default '0',
- `quota` int(10) 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`),
- KEY domain (`domain`)
+$result = db_query_parsed("
+ CREATE TABLE {IF_NOT_EXISTS} `" . table_by_key('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` int(10) NOT NULL default '0',
+ `quota` int(10) 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`),
+KEY domain (`domain`)
) TYPE=MyISAM DEFAULT {LATIN1} COMMENT='Postfix Admin - Virtual Domains';
- ");
+");
- $result = db_query_parsed("
- CREATE TABLE {IF_NOT_EXISTS} `" . table_by_key('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 DEFAULT {LATIN1} COMMENT='Postfix Admin - Domain Admins';
- ");
+$result = db_query_parsed("
+ CREATE TABLE {IF_NOT_EXISTS} `" . table_by_key('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 DEFAULT {LATIN1} COMMENT='Postfix Admin - Domain Admins';
+");
- $result = db_query_parsed("
- CREATE TABLE {IF_NOT_EXISTS} `" . table_by_key('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 DEFAULT {LATIN1} COMMENT='Postfix Admin - Log';
- ");
+$result = db_query_parsed("
+ CREATE TABLE {IF_NOT_EXISTS} `" . table_by_key('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 DEFAULT {LATIN1} COMMENT='Postfix Admin - Log';
+");
- $result = db_query_parsed("
- CREATE TABLE {IF_NOT_EXISTS} `" . table_by_key('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` int(10) 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`),
- KEY username (`username`)
+$result = db_query_parsed("
+ CREATE TABLE {IF_NOT_EXISTS} `" . table_by_key('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` int(10) 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`),
+KEY username (`username`)
) TYPE=MyISAM DEFAULT {LATIN1} COMMENT='Postfix Admin - Virtual Mailboxes';
- ");
+");
- $result = db_query_parsed("
- CREATE TABLE {IF_NOT_EXISTS} `" . table_by_key('vacation') . "` (
- `email` varchar(255) NOT NULL default '',
- `subject` varchar(255) NOT NULL default '',
- `body` text NOT NULL default '',
- `cache` text 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',
- PRIMARY KEY (`email`),
- KEY email (`email`)
+$result = db_query_parsed("
+ CREATE TABLE {IF_NOT_EXISTS} `" . table_by_key('vacation') . "` (
+ `email` varchar(255) NOT NULL default '',
+ `subject` varchar(255) NOT NULL default '',
+ `body` text NOT NULL default '',
+ `cache` text 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',
+ PRIMARY KEY (`email`),
+KEY email (`email`)
) TYPE=MyISAM DEFAULT {LATIN1} COMMENT='Postfix Admin - Virtual Vacation';
- ");
+");
}
/**
@@ -497,14 +618,14 @@
$table_vacation_notification = table_by_key('vacation_notification');
$all_sql = split("\n", trim("
- ALTER TABLE `$table_vacation` CHANGE `email` `email` VARCHAR( 255 ) {LATIN1} NOT NULL
- ALTER TABLE `$table_vacation` CHANGE `subject` `subject` VARCHAR( 255 ) {UTF-8} NOT NULL
- ALTER TABLE `$table_vacation` CHANGE `body` `body` TEXT {UTF-8} NOT NULL
- ALTER TABLE `$table_vacation` CHANGE `cache` `cache` TEXT {LATIN1} NOT NULL
- ALTER TABLE `$table_vacation` CHANGE `domain` `domain` VARCHAR( 255 ) {LATIN1} NOT NULL
- ALTER TABLE `$table_vacation` CHANGE `active` `active` TINYINT( 1 ) NOT NULL DEFAULT '1'
- ALTER TABLE `$table_vacation` DEFAULT {LATIN1}
- ALTER TABLE `$table_vacation` ENGINE = INNODB
+ ALTER TABLE `$table_vacation` CHANGE `email` `email` VARCHAR( 255 ) {LATIN1} NOT NULL
+ ALTER TABLE `$table_vacation` CHANGE `subject` `subject` VARCHAR( 255 ) {UTF-8} NOT NULL
+ ALTER TABLE `$table_vacation` CHANGE `body` `body` TEXT {UTF-8} NOT NULL
+ ALTER TABLE `$table_vacation` CHANGE `cache` `cache` TEXT {LATIN1} NOT NULL
+ ALTER TABLE `$table_vacation` CHANGE `domain` `domain` VARCHAR( 255 ) {LATIN1} NOT NULL
+ ALTER TABLE `$table_vacation` CHANGE `active` `active` TINYINT( 1 ) NOT NULL DEFAULT '1'
+ ALTER TABLE `$table_vacation` DEFAULT {LATIN1}
+ ALTER TABLE `$table_vacation` ENGINE = INNODB
"));
foreach ($all_sql as $sql) {
@@ -550,34 +671,34 @@
on_vacation varchar(255) NOT NULL,
notified varchar(255) NOT NULL,
notified_at timestamp NOT NULL default now(),
- PRIMARY KEY on_vacation (`on_vacation`, `notified`),
- CONSTRAINT `vacation_notification_pkey`
- FOREIGN KEY (`on_vacation`) REFERENCES vacation(`email`) ON DELETE CASCADE
- )
- ENGINE=InnoDB DEFAULT {LATIN1} TYPE=InnoDB
- COMMENT='Postfix Admin - Virtual Vacation Notifications'
- ");
+ PRIMARY KEY on_vacation (`on_vacation`, `notified`),
+ CONSTRAINT `vacation_notification_pkey`
+ FOREIGN KEY (`on_vacation`) REFERENCES vacation(`email`) ON DELETE CASCADE
+)
+ENGINE=InnoDB DEFAULT {LATIN1} TYPE=InnoDB
+COMMENT='Postfix Admin - Virtual Vacation Notifications'
+");
- # in case someone has manually created the table with utf8 fields before:
- $all_sql = split("\n", trim("
- ALTER TABLE `$table_vacation_notification` DROP FOREIGN KEY `vacation_notification_pkey`
- ALTER TABLE `$table_vacation_notification` CHANGE `on_vacation` `on_vacation` VARCHAR( 255 ) {LATIN1} NOT NULL
- ALTER TABLE `$table_vacation_notification` CHANGE `notified` `notified` VARCHAR( 255 ) {LATIN1} NOT NULL
- ALTER TABLE `$table_vacation_notification` DEFAULT {LATIN1}
- "));
- # Possible errors that can be ignored:
- # None.
- # If something goes wrong, the user should drop the vacation_notification table
- # (not a great loss) and re-create it using this function.
+# in case someone has manually created the table with utf8 fields before:
+$all_sql = split("\n", trim("
+ ALTER TABLE `$table_vacation_notification` DROP FOREIGN KEY `vacation_notification_pkey`
+ ALTER TABLE `$table_vacation_notification` CHANGE `on_vacation` `on_vacation` VARCHAR( 255 ) {LATIN1} NOT NULL
+ ALTER TABLE `$table_vacation_notification` CHANGE `notified` `notified` VARCHAR( 255 ) {LATIN1} NOT NULL
+ ALTER TABLE `$table_vacation_notification` DEFAULT {LATIN1}
+"));
+# Possible errors that can be ignored:
+# None.
+# If something goes wrong, the user should drop the vacation_notification table
+# (not a great loss) and re-create it using this function.
- foreach ($all_sql as $sql) {
- $result = db_query_parsed($sql);
- }
+foreach ($all_sql as $sql) {
+ $result = db_query_parsed($sql);
+}
- # create constraint...
- $result = db_query_parsed("
- ALTER TABLE $table_vacation_notification ADD CONSTRAINT `vacation_notification_pkey`
- FOREIGN KEY (`on_vacation`) REFERENCES vacation(`email`) ON DELETE CASCADE
+# create constraint...
+$result = db_query_parsed("
+ ALTER TABLE $table_vacation_notification ADD CONSTRAINT `vacation_notification_pkey`
+ FOREIGN KEY (`on_vacation`) REFERENCES vacation(`email`) ON DELETE CASCADE
");
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|