Skip to Content.
Sympa Menu

en - Re: [sympa-users] After Upgrade to 6.1.11

Subject: The mailing list for listmasters using Sympa

List archive

Chronological Thread  
  • From: David Verdin <address@concealed>
  • To: Alex Hanselka <address@concealed>
  • Cc: address@concealed
  • Subject: Re: [sympa-users] After Upgrade to 6.1.11
  • Date: Wed, 16 May 2012 14:54:01 +0200

Hi Alex,

You're not a pain, Sympa support of Postgres is. Fortunately, this will come to an end with 6.2. I'll explain at the end of this message.

First, your problem: Until Sympa 6.1.10, The exclusion table was not robot aware: there was no information about which robot hosted the list you wanted to be excluded from. Consequently, if a user excluded herself from a list called "list@robot1", she was excluded from other lists having the same name on other robots. Fat chance this could lessa to actual problems, but it could happen.
So we added a robot column to the exclunios table and developped an upgrade process that adds the right robot information to any existing exclusion entry.

What you need to do now is adding to the "exclusion_table" table a column called "robot_exclusion", then rerun the upgrade process (edit the etc/data_structure.version file. replace "6.1.11" by "6.1.10" and run sympa.pl --upgrade again).

Second: Sympa support of Postgres:
Any user whose DB backend is PostgreSQL, Sybase orOracle will have the two problems you met, ecxept if they update their database structure first.
To make sure these troubles will stop, the next version of Sympa has a completely rewritten RDBMS support. The parts related to RDBMS-specific function or queries (mainly database structure related) are embedded in RDBMS-spcific modules called "DBManipulator<RDBMSname>.pm". I attached the Postgres module to this mail so that you can have a glimpse at what it is.

Shortly: all the code of Sympa is now completely RDBMS agnostic. It uses generic function, such as "add_table", "set_index", "add_field" or "update_field". This function all exist in each RDBMS module (such as DBManipulatorPostgres.pm attached here) and contain the queries that need to be used for the corresponding RDBMS.

This way, we hope that it will be easier to have contributions by people using theses RDBMS. Indeed, we (the Sympa authors) have expertship in MySQL only. The support of all the other RDBMS relies on contributions only. Now, people knowing the other RDBMS will be able to contribute by simply providing us the queries (or successions of queries) necessary to do some operations: add a field, add a table, update a field type, etc.

For now, the work is done for MySQL, SQLite and PostgreSQL. We have a contribution ongoing for Oracle (11gR2).
Sybase, anybody? ;-)

Meanwhile, we'll tag a new stable version in which we'll make more emphasis on the necessary upgrade of the database structure before running sympa.pl --upgrade.

Sorry for this inconvenience.

Best regards,

David

Le 15/05/12 17:36, Alex Hanselka a écrit :
That fixed the issue, but while running the upgrade, I also got this error

notice Upgrade::upgrade() fixing robot column of exclusion table.
DBD::Pg::st execute failed: ERROR: column "robot_exclusion" of relation
"exclusion_table" does not exist
LINE 1: UPDATE exclusion_table SET robot_exclusion = 'lists.darkdna....
^ at /srv/sympa/bin/Upgrade.pm line 737.
err Upgrade::upgrade() Unable to execute SQL statement "UPDATE exclusion_table SET robot_exclusion =
'lists.darkdna.net' WHERE list_exclusion='serverstatus' AND address@concealed'" :
ERROR: column "robot_exclusion" of relation "exclusion_table" does not exist
LINE 1: UPDATE exclusion_table SET robot_exclusion = 'lists.darkdna....
^
notice Upgrade::upgrade() Caching all lists config subset to database

Sorry that I have become a pain :)

Alex


On May 15, 2012, at 10:12 AM, David Verdin wrote:

Hi,

Postgres is not upgraded automatically - at least in 6.1, It will be starting
6.2.

To create the list_table table, please use the following requests:

CREATE TYPE type_list_status AS ENUM ('open', 'closed', 'pending',
'error_config', 'family_closed');
CREATE TABLE list_table (
creation_email_list varchar(100),
creation_epoch_list timestamptz,
editors_list varchar(100),
name_list varchar(100) NOT NULL,
owners_list varchar(100),
path_list varchar(100),
robot_list varchar(100) NOT NULL,
status_list type_list_status,
subject_list varchar(100),
topics_list varchar(100),
web_archive_list int2,
constraint ind_list primary key (name_list,robot_list)
);

After that, you should edit the etc/data_structure.version file. replace "6.1.11" by
"6.1.10" and run sympa.pl --upgrade again.

Regards,

David




Archive powered by MHonArc 2.6.19+.

Top of Page