SF.net SVN: postfixadmin: [317] trunk
Brought to you by:
christian_boltz,
gingerdog
|
From: <chr...@us...> - 2008-04-06 21:33:31
|
Revision: 317
http://postfixadmin.svn.sourceforge.net/postfixadmin/?rev=317&view=rev
Author: christian_boltz
Date: 2008-04-06 14:33:30 -0700 (Sun, 06 Apr 2008)
Log Message:
-----------
upgrade.php:
- integrated table creation, based on SVN r1 DATABASE_MYSQL.txt
- added some comments about possible errors that can be ignored
(I'm dreaming of having an error "whitelist" and displaying
all other errors - but not for 2.2 ;-)
DATABASE_MYSQL.TXT
- added up-to-date database setup instructions
- disabled all SQL code (will be deleted later)
Modified Paths:
--------------
trunk/DATABASE_MYSQL.TXT
trunk/upgrade.php
Modified: trunk/DATABASE_MYSQL.TXT
===================================================================
--- trunk/DATABASE_MYSQL.TXT 2008-04-03 22:16:15 UTC (rev 316)
+++ trunk/DATABASE_MYSQL.TXT 2008-04-06 21:33:30 UTC (rev 317)
@@ -2,7 +2,34 @@
# Postfix Admin
# Licensed under GPL for more info check LICENSE.TXT
#
+#
+# To setup the MySQL database, do the following steps:
+# - create a MySQL database
+# CREATE DATABASE postfix;
+# - create a MySQL user that has all permissions on this database:
+# CREATE USER 'postfix'@'localhost' IDENTIFIED BY 'choose_a_password';
+# GRANT ALL PRIVILEGES ON `postfix` . * TO 'postfix'@'localhost';
+# - edit config.inc.php to suit your needs
+# - run upgrade.php to create the needed tables (yes, the filename is chosen
+# badly in this case ;-)
+# - run setup.php
+
+
+
+
+/*
+
+ ***********************************************************************
+ * everything below is probably outdated and should no longer be used. *
+ * Therefore it is commented out ;-) *
+ ***********************************************************************
+
+
+
+
+
+
# This is the complete MySQL 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.
Modified: trunk/upgrade.php
===================================================================
--- trunk/upgrade.php 2008-04-03 22:16:15 UTC (rev 316)
+++ trunk/upgrade.php 2008-04-06 21:33:30 UTC (rev 317)
@@ -225,6 +225,8 @@
$result = db_query_parsed("ALTER TABLE $table_domain ADD COLUMN transport VARCHAR(255) AFTER maxquota;", TRUE);
// don't think PGSQL supports 'AFTER transport'
$result = db_query_parsed("ALTER TABLE $table_domain ADD COLUMN backupmx {BOOLEAN} DEFAULT {BOOL_FALSE} AFTER transport;", TRUE);
+ # possible errors that can be ignored:
+ # - Invalid query: Table 'postfix.domain' doesn't exist
}
function upgrade_2_pgsql() {
@@ -265,17 +267,21 @@
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) {
- $result = db_query_parsed($sql, TRUE);
- }
+ foreach ($all_sql as $sql) {
+ $result = db_query_parsed($sql, TRUE);
+ }
+ # Possible errors that can be ignored:
+ # - Invalid query: Table 'postfix.*' doesn't exist
}
function upgrade_4_mysql() { # MySQL only
# 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:
+ # - Invalid query: Table 'postfix.domain' doesn't exist
}
/**
@@ -364,6 +370,112 @@
}
/**
+ * create tables
+ * version: Sourceforge SVN r1 of DATABASE_MYSQL.txt
+ * changes compared to DATABASE_MYSQL.txt:
+ * - removed MySQL user and database creation
+ * - removed creation of default superadmin
+ */
+function upgrade_5_mysql() {
+
+ $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 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`)
+ ) TYPE=MyISAM 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`)
+ ) TYPE=MyISAM 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 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 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`)
+ ) TYPE=MyISAM 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`)
+ ) TYPE=MyISAM COMMENT='Postfix Admin - Virtual Vacation';
+ ");
+ # Possible errors that can be ignored:
+ # - (none)
+}
+
+/**
* drop useless indicies (already available as primary key)
*/
function upgrade_79_mysql() { # MySQL only
@@ -443,7 +555,9 @@
* vacation_notification:
- DEFAULT CHARSET and COLLATE should be changed
- change all varchar fields to latin1 (email addresses don't contain utf8 characters)
-
+* charset of equal fields MUST be the same (see bugreport)
+* if necessary, delete the CONSTRAINT before changing field type and create it again
+ http://dev.mysql.com/doc/refman/5.0/en/innodb-foreign-key-constraints.html
*/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|