Thread: [Postfixadmin-devel] adding columns to existing tables
Brought to you by:
christian_boltz,
gingerdog
From: reg9009 <re...@ya...> - 2009-10-10 07:42:43
|
Hi guys, in order to provide the vacation replies depending on a time frame, I need to add some fields to an existing table. Additionally, I need to add some tables, as I want to add the possibility to control relaying depending on IPs, etc. Unfortunately, I didn't get into upgrade.php that deep, especially to ensure PostgreSQL compatibility. Would it be ok to post the tables and changes and someone could help me adopt the upgrade.php script? Regards, Sebastian |
From: Christian B. <pos...@cb...> - 2009-10-11 22:55:13
|
Hello, Am Samstag, 10. Oktober 2009 schrieb reg9009: > in order to provide the vacation replies depending on a time frame, I > need to add some fields to an existing table. Additionally, I need to > add some tables, as I want to add the possibility to control relaying > depending on IPs, etc. Unfortunately, I didn't get into upgrade.php > that deep, especially to ensure PostgreSQL compatibility. > > Would it be ok to post the tables and changes and someone could help > me adopt the upgrade.php script? Yes, of course. The best way is to post your ALTER TABLE statements (hint: phpMyAdmin displays them after adding fields ;-) I can do the MySQL part of upgrade.php then, David can do the PostgreSQL part. On the long(er) run, we should write a generic functions like add_field($table, $fieldname, $type, $default, $null, $after_field) (and/or a set of functions like add_bool_field, add_text_field etc.) This way, we can just call the generic function and don't need to worry about the MySQL vs. PostgreSQL details each time. (Having to add some fields might be a good reason to write those function ;-) Regards, Christian Boltz -- > CPU&-Register: die Person (mit Kurzzeitgedaechnis) Ich darf doch schwer bitten. Wenn ich morgens aufwache, brauche ich nicht erst Aktenordner durchzulesen. Ich kann mich auch so erinnern. [> David Haller und Bernd Brodesser in suse-linux] |
From: reg9009 <re...@ya...> - 2009-10-14 19:00:28
|
Christian Boltz schrieb: > Hello, > > Am Samstag, 10. Oktober 2009 schrieb reg9009: > >> in order to provide the vacation replies depending on a time frame, I >> need to add some fields to an existing table. Additionally, I need to >> add some tables, as I want to add the possibility to control relaying >> depending on IPs, etc. Unfortunately, I didn't get into upgrade.php >> that deep, especially to ensure PostgreSQL compatibility. >> >> Would it be ok to post the tables and changes and someone could help >> me adopt the upgrade.php script? >> > > Yes, of course. The best way is to post your ALTER TABLE statements > (hint: phpMyAdmin displays them after adding fields ;-) > > I can do the MySQL part of upgrade.php then, David can do the PostgreSQL > part. > > On the long(er) run, we should write a generic functions like > add_field($table, $fieldname, $type, $default, $null, $after_field) > (and/or a set of functions like add_bool_field, add_text_field etc.) > This way, we can just call the generic function and don't need to worry > about the MySQL vs. PostgreSQL details each time. (Having to add some > fields might be a good reason to write those function ;-) > > > Regards, > > Christian Boltz > Hi, sorry for replying that late, a lot of stuff over here... Ok, so here are the MySQL statements. The first two are needed to set a timeframe for which vacation message should be activated. It can be used safely in existing PFA trunk. The other ones are to tell Postfix about some whitelist entries depending on sender, helo, recipient, sender, IP, etc. alter table vacation add column activefrom datetime default NULL; alter table vacation add column activeuntil datetime default NULL; CREATE TABLE `client_access` ( `client` char(50) NOT NULL, `action` char(50) NOT NULL default 'REJECT', UNIQUE KEY `client` (`client`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; CREATE TABLE `from_access` ( `from_access` char(50) NOT NULL, `action` char(50) NOT NULL default 'REJECT', UNIQUE KEY `from_access` (`from_access`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; CREATE TABLE `helo_access` ( `helo` char(50) NOT NULL, `action` char(50) NOT NULL default 'REJECT', UNIQUE KEY `helo` (`helo`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; CREATE TABLE `rcpt_access` ( `rcpt` char(50) NOT NULL, `action` char(50) NOT NULL default 'REJECT', UNIQUE KEY `rcpt` (`rcpt`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; CREATE TABLE `user_whitelist` ( `recipient` char(50) NOT NULL, `action` char(2) NOT NULL default 'OK', UNIQUE KEY `recipient` (`recipient`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; Regards, Sebastian |