diff options
Diffstat (limited to 'src/mailman/database/schema')
| -rw-r--r-- | src/mailman/database/schema/__init__.py | 0 | ||||
| -rw-r--r-- | src/mailman/database/schema/helpers.py | 43 | ||||
| -rw-r--r-- | src/mailman/database/schema/mm_00000000000000_base.py | 35 | ||||
| -rw-r--r-- | src/mailman/database/schema/mm_20120407000000.py | 212 | ||||
| -rw-r--r-- | src/mailman/database/schema/mm_20121015000000.py | 95 | ||||
| -rw-r--r-- | src/mailman/database/schema/mm_20130406000000.py | 65 | ||||
| -rw-r--r-- | src/mailman/database/schema/postgres.sql | 349 | ||||
| -rw-r--r-- | src/mailman/database/schema/sqlite.sql | 327 | ||||
| -rw-r--r-- | src/mailman/database/schema/sqlite_20120407000000_01.sql | 280 | ||||
| -rw-r--r-- | src/mailman/database/schema/sqlite_20121015000000_01.sql | 230 | ||||
| -rw-r--r-- | src/mailman/database/schema/sqlite_20130406000000_01.sql | 46 |
11 files changed, 0 insertions, 1682 deletions
diff --git a/src/mailman/database/schema/__init__.py b/src/mailman/database/schema/__init__.py deleted file mode 100644 index e69de29bb..000000000 --- a/src/mailman/database/schema/__init__.py +++ /dev/null diff --git a/src/mailman/database/schema/helpers.py b/src/mailman/database/schema/helpers.py deleted file mode 100644 index 827e6cc96..000000000 --- a/src/mailman/database/schema/helpers.py +++ /dev/null @@ -1,43 +0,0 @@ -# Copyright (C) 2013-2014 by the Free Software Foundation, Inc. -# -# This file is part of GNU Mailman. -# -# GNU Mailman is free software: you can redistribute it and/or modify it under -# the terms of the GNU General Public License as published by the Free -# Software Foundation, either version 3 of the License, or (at your option) -# any later version. -# -# GNU Mailman is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for -# more details. -# -# You should have received a copy of the GNU General Public License along with -# GNU Mailman. If not, see <http://www.gnu.org/licenses/>. - -"""Schema migration helpers.""" - -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type -__all__ = [ - 'make_listid', - ] - - - -def make_listid(fqdn_listname): - """Turn a FQDN list name into a List-ID.""" - list_name, at, mail_host = fqdn_listname.partition('@') - if at == '': - # If there is no @ sign in the value, assume it already contains the - # list-id. - return fqdn_listname - return '{0}.{1}'.format(list_name, mail_host) - - - -def pivot(store, table_name): - """Pivot a backup table into the real table name.""" - store.execute('DROP TABLE {}'.format(table_name)) - store.execute('ALTER TABLE {0}_backup RENAME TO {0}'.format(table_name)) diff --git a/src/mailman/database/schema/mm_00000000000000_base.py b/src/mailman/database/schema/mm_00000000000000_base.py deleted file mode 100644 index ad085427f..000000000 --- a/src/mailman/database/schema/mm_00000000000000_base.py +++ /dev/null @@ -1,35 +0,0 @@ -# Copyright (C) 2012-2014 by the Free Software Foundation, Inc. -# -# This file is part of GNU Mailman. -# -# GNU Mailman is free software: you can redistribute it and/or modify it under -# the terms of the GNU General Public License as published by the Free -# Software Foundation, either version 3 of the License, or (at your option) -# any later version. -# -# GNU Mailman is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for -# more details. -# -# You should have received a copy of the GNU General Public License along with -# GNU Mailman. If not, see <http://www.gnu.org/licenses/>. - -"""Load the base schema.""" - -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type -__all__ = [ - 'upgrade', - ] - - -VERSION = '00000000000000' -_helper = None - - - -def upgrade(database, store, version, module_path): - filename = '{0}.sql'.format(database.TAG) - database.load_schema(store, version, filename, module_path) diff --git a/src/mailman/database/schema/mm_20120407000000.py b/src/mailman/database/schema/mm_20120407000000.py deleted file mode 100644 index 1d798ea96..000000000 --- a/src/mailman/database/schema/mm_20120407000000.py +++ /dev/null @@ -1,212 +0,0 @@ -# Copyright (C) 2012-2014 by the Free Software Foundation, Inc. -# -# This file is part of GNU Mailman. -# -# GNU Mailman is free software: you can redistribute it and/or modify it under -# the terms of the GNU General Public License as published by the Free -# Software Foundation, either version 3 of the License, or (at your option) -# any later version. -# -# GNU Mailman is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for -# more details. -# -# You should have received a copy of the GNU General Public License along with -# GNU Mailman. If not, see <http://www.gnu.org/licenses/>. - -"""3.0b1 -> 3.0b2 schema migrations. - -All column changes are in the `mailinglist` table. - -* Renames: - - news_prefix_subject_too -> nntp_prefix_subject_too - - news_moderation -> newsgroup_moderation - -* Collapsing: - - archive, archive_private -> archive_policy - -* Remove: - - archive_volume_frequency - - generic_nonmember_action - - nntp_host - -* Added: - - list_id - -* Changes: - member.mailing_list holds the list_id not the fqdn_listname - -See https://bugs.launchpad.net/mailman/+bug/971013 for details. -""" - -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type -__all__ = [ - 'upgrade', - ] - - -from mailman.database.schema.helpers import pivot -from mailman.interfaces.archiver import ArchivePolicy - - -VERSION = '20120407000000' - - - -def upgrade(database, store, version, module_path): - if database.TAG == 'sqlite': - upgrade_sqlite(database, store, version, module_path) - else: - upgrade_postgres(database, store, version, module_path) - - - -def archive_policy(archive, archive_private): - """Convert archive and archive_private to archive_policy.""" - if archive == 0: - return ArchivePolicy.never.value - elif archive_private == 1: - return ArchivePolicy.private.value - else: - return ArchivePolicy.public.value - - - -def upgrade_sqlite(database, store, version, module_path): - # Load the first part of the migration. This creates a temporary table to - # hold the new mailinglist table columns. The problem is that some of the - # changes must be performed in Python, so after the first part is loaded, - # we do the Python changes, drop the old mailing list table, and then - # rename the temporary table to its place. - database.load_schema( - store, version, 'sqlite_{0}_01.sql'.format(version), module_path) - results = store.execute(""" - SELECT id, include_list_post_header, - news_prefix_subject_too, news_moderation, - archive, archive_private, list_name, mail_host - FROM mailinglist; - """) - for value in results: - (id, list_post, - news_prefix, news_moderation, - archive, archive_private, - list_name, mail_host) = value - # Figure out what the new archive_policy column value should be. - list_id = '{0}.{1}'.format(list_name, mail_host) - fqdn_listname = '{0}@{1}'.format(list_name, mail_host) - store.execute(""" - UPDATE mailinglist_backup SET - allow_list_posts = {0}, - newsgroup_moderation = {1}, - nntp_prefix_subject_too = {2}, - archive_policy = {3}, - list_id = '{4}' - WHERE id = {5}; - """.format( - list_post, - news_moderation, - news_prefix, - archive_policy(archive, archive_private), - list_id, - id)) - # Also update the member.mailing_list column to hold the list_id - # instead of the fqdn_listname. - store.execute(""" - UPDATE member SET - mailing_list = '{0}' - WHERE mailing_list = '{1}'; - """.format(list_id, fqdn_listname)) - # Pivot the backup table to the real thing. - pivot(store, 'mailinglist') - # Now add some indexes that were previously missing. - store.execute( - 'CREATE INDEX ix_mailinglist_list_id ON mailinglist (list_id);') - store.execute( - 'CREATE INDEX ix_mailinglist_fqdn_listname ' - 'ON mailinglist (list_name, mail_host);') - # Now, do the member table. - results = store.execute('SELECT id, mailing_list FROM member;') - for id, mailing_list in results: - list_name, at, mail_host = mailing_list.partition('@') - if at == '': - list_id = mailing_list - else: - list_id = '{0}.{1}'.format(list_name, mail_host) - store.execute(""" - UPDATE member_backup SET list_id = '{0}' - WHERE id = {1}; - """.format(list_id, id)) - # Pivot the backup table to the real thing. - pivot(store, 'member') - - - -def upgrade_postgres(database, store, version, module_path): - # Get the old values from the mailinglist table. - results = store.execute(""" - SELECT id, archive, archive_private, list_name, mail_host - FROM mailinglist; - """) - # Do the simple renames first. - store.execute(""" - ALTER TABLE mailinglist - RENAME COLUMN news_prefix_subject_too TO nntp_prefix_subject_too; - """) - store.execute(""" - ALTER TABLE mailinglist - RENAME COLUMN news_moderation TO newsgroup_moderation; - """) - store.execute(""" - ALTER TABLE mailinglist - RENAME COLUMN include_list_post_header TO allow_list_posts; - """) - # Do the easy column drops next. - for column in ('archive_volume_frequency', - 'generic_nonmember_action', - 'nntp_host'): - store.execute( - 'ALTER TABLE mailinglist DROP COLUMN {0};'.format(column)) - # Now do the trickier collapsing of values. Add the new columns. - store.execute('ALTER TABLE mailinglist ADD COLUMN archive_policy INTEGER;') - store.execute('ALTER TABLE mailinglist ADD COLUMN list_id TEXT;') - # Query the database for the old values of archive and archive_private in - # each column. Then loop through all the results and update the new - # archive_policy from the old values. - for value in results: - id, archive, archive_private, list_name, mail_host = value - list_id = '{0}.{1}'.format(list_name, mail_host) - store.execute(""" - UPDATE mailinglist SET - archive_policy = {0}, - list_id = '{1}' - WHERE id = {2}; - """.format(archive_policy(archive, archive_private), list_id, id)) - # Now drop the old columns. - for column in ('archive', 'archive_private'): - store.execute( - 'ALTER TABLE mailinglist DROP COLUMN {0};'.format(column)) - # Now add some indexes that were previously missing. - store.execute( - 'CREATE INDEX ix_mailinglist_list_id ON mailinglist (list_id);') - store.execute( - 'CREATE INDEX ix_mailinglist_fqdn_listname ' - 'ON mailinglist (list_name, mail_host);') - # Now, do the member table. - results = store.execute('SELECT id, mailing_list FROM member;') - store.execute('ALTER TABLE member ADD COLUMN list_id TEXT;') - for id, mailing_list in results: - list_name, at, mail_host = mailing_list.partition('@') - if at == '': - list_id = mailing_list - else: - list_id = '{0}.{1}'.format(list_name, mail_host) - store.execute(""" - UPDATE member SET list_id = '{0}' - WHERE id = {1}; - """.format(list_id, id)) - store.execute('ALTER TABLE member DROP COLUMN mailing_list;') - # Record the migration in the version table. - database.load_schema(store, version, None, module_path) diff --git a/src/mailman/database/schema/mm_20121015000000.py b/src/mailman/database/schema/mm_20121015000000.py deleted file mode 100644 index 84510ff57..000000000 --- a/src/mailman/database/schema/mm_20121015000000.py +++ /dev/null @@ -1,95 +0,0 @@ -# Copyright (C) 2012-2014 by the Free Software Foundation, Inc. -# -# This file is part of GNU Mailman. -# -# GNU Mailman is free software: you can redistribute it and/or modify it under -# the terms of the GNU General Public License as published by the Free -# Software Foundation, either version 3 of the License, or (at your option) -# any later version. -# -# GNU Mailman is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for -# more details. -# -# You should have received a copy of the GNU General Public License along with -# GNU Mailman. If not, see <http://www.gnu.org/licenses/>. - -"""3.0b2 -> 3.0b3 schema migrations. - -Renamed: - * bans.mailing_list -> bans.list_id - -Removed: - * mailinglist.new_member_options - * mailinglist.send_remindersn -""" - -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type -__all__ = [ - 'upgrade', - ] - - -from mailman.database.schema.helpers import make_listid, pivot - - -VERSION = '20121015000000' - - - -def upgrade(database, store, version, module_path): - if database.TAG == 'sqlite': - upgrade_sqlite(database, store, version, module_path) - else: - upgrade_postgres(database, store, version, module_path) - - - -def upgrade_sqlite(database, store, version, module_path): - database.load_schema( - store, version, 'sqlite_{}_01.sql'.format(version), module_path) - results = store.execute(""" - SELECT id, mailing_list - FROM ban; - """) - for id, mailing_list in results: - # Skip global bans since there's nothing to update. - if mailing_list is None: - continue - store.execute(""" - UPDATE ban_backup SET list_id = '{}' - WHERE id = {}; - """.format(make_listid(mailing_list), id)) - # Pivot the bans backup table to the real thing. - pivot(store, 'ban') - pivot(store, 'mailinglist') - - - -def upgrade_postgres(database, store, version, module_path): - # Get the old values from the ban table. - results = store.execute('SELECT id, mailing_list FROM ban;') - store.execute('ALTER TABLE ban ADD COLUMN list_id TEXT;') - for id, mailing_list in results: - # Skip global bans since there's nothing to update. - if mailing_list is None: - continue - store.execute(""" - UPDATE ban SET list_id = '{0}' - WHERE id = {1}; - """.format(make_listid(mailing_list), id)) - store.execute('ALTER TABLE ban DROP COLUMN mailing_list;') - store.execute('ALTER TABLE mailinglist DROP COLUMN new_member_options;') - store.execute('ALTER TABLE mailinglist DROP COLUMN send_reminders;') - store.execute('ALTER TABLE mailinglist DROP COLUMN subscribe_policy;') - store.execute('ALTER TABLE mailinglist DROP COLUMN unsubscribe_policy;') - store.execute( - 'ALTER TABLE mailinglist DROP COLUMN subscribe_auto_approval;') - store.execute('ALTER TABLE mailinglist DROP COLUMN private_roster;') - store.execute( - 'ALTER TABLE mailinglist DROP COLUMN admin_member_chunksize;') - # Record the migration in the version table. - database.load_schema(store, version, None, module_path) diff --git a/src/mailman/database/schema/mm_20130406000000.py b/src/mailman/database/schema/mm_20130406000000.py deleted file mode 100644 index 8d38dbab0..000000000 --- a/src/mailman/database/schema/mm_20130406000000.py +++ /dev/null @@ -1,65 +0,0 @@ -# Copyright (C) 2013-2014 by the Free Software Foundation, Inc. -# -# This file is part of GNU Mailman. -# -# GNU Mailman is free software: you can redistribute it and/or modify it under -# the terms of the GNU General Public License as published by the Free -# Software Foundation, either version 3 of the License, or (at your option) -# any later version. -# -# GNU Mailman is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for -# more details. -# -# You should have received a copy of the GNU General Public License along with -# GNU Mailman. If not, see <http://www.gnu.org/licenses/>. - -"""3.0b3 -> 3.0b4 schema migrations. - -Renamed: - * bounceevent.list_name -> bounceevent.list_id -""" - - -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type -__all__ = [ - 'upgrade' - ] - - -from mailman.database.schema.helpers import make_listid, pivot - - -VERSION = '20130406000000' - - - -def upgrade(database, store, version, module_path): - if database.TAG == 'sqlite': - upgrade_sqlite(database, store, version, module_path) - else: - upgrade_postgres(database, store, version, module_path) - - - -def upgrade_sqlite(database, store, version, module_path): - database.load_schema( - store, version, 'sqlite_{}_01.sql'.format(version), module_path) - results = store.execute(""" - SELECT id, list_name - FROM bounceevent; - """) - for id, list_name in results: - store.execute(""" - UPDATE bounceevent_backup SET list_id = '{}' - WHERE id = {}; - """.format(make_listid(list_name), id)) - pivot(store, 'bounceevent') - - - -def upgrade_postgres(database, store, version, module_path): - pass diff --git a/src/mailman/database/schema/postgres.sql b/src/mailman/database/schema/postgres.sql deleted file mode 100644 index 0e97a4332..000000000 --- a/src/mailman/database/schema/postgres.sql +++ /dev/null @@ -1,349 +0,0 @@ -CREATE TABLE mailinglist ( - id SERIAL NOT NULL, - -- List identity - list_name TEXT, - mail_host TEXT, - include_list_post_header BOOLEAN, - include_rfc2369_headers BOOLEAN, - -- Attributes not directly modifiable via the web u/i - created_at TIMESTAMP, - admin_member_chunksize INTEGER, - next_request_id INTEGER, - next_digest_number INTEGER, - digest_last_sent_at TIMESTAMP, - volume INTEGER, - last_post_at TIMESTAMP, - accept_these_nonmembers BYTEA, - acceptable_aliases_id INTEGER, - admin_immed_notify BOOLEAN, - admin_notify_mchanges BOOLEAN, - administrivia BOOLEAN, - advertised BOOLEAN, - anonymous_list BOOLEAN, - archive BOOLEAN, - archive_private BOOLEAN, - archive_volume_frequency INTEGER, - -- Automatic responses. - autorespond_owner INTEGER, - autoresponse_owner_text TEXT, - autorespond_postings INTEGER, - autoresponse_postings_text TEXT, - autorespond_requests INTEGER, - autoresponse_request_text TEXT, - autoresponse_grace_period TEXT, - -- Bounces. - forward_unrecognized_bounces_to INTEGER, - process_bounces BOOLEAN, - bounce_info_stale_after TEXT, - bounce_matching_headers TEXT, - bounce_notify_owner_on_disable BOOLEAN, - bounce_notify_owner_on_removal BOOLEAN, - bounce_score_threshold INTEGER, - bounce_you_are_disabled_warnings INTEGER, - bounce_you_are_disabled_warnings_interval TEXT, - -- Content filtering. - filter_action INTEGER, - filter_content BOOLEAN, - collapse_alternatives BOOLEAN, - convert_html_to_plaintext BOOLEAN, - default_member_action INTEGER, - default_nonmember_action INTEGER, - description TEXT, - digest_footer_uri TEXT, - digest_header_uri TEXT, - digest_is_default BOOLEAN, - digest_send_periodic BOOLEAN, - digest_size_threshold REAL, - digest_volume_frequency INTEGER, - digestable BOOLEAN, - discard_these_nonmembers BYTEA, - emergency BOOLEAN, - encode_ascii_prefixes BOOLEAN, - first_strip_reply_to BOOLEAN, - footer_uri TEXT, - forward_auto_discards BOOLEAN, - gateway_to_mail BOOLEAN, - gateway_to_news BOOLEAN, - generic_nonmember_action INTEGER, - goodbye_message_uri TEXT, - header_matches BYTEA, - header_uri TEXT, - hold_these_nonmembers BYTEA, - info TEXT, - linked_newsgroup TEXT, - max_days_to_hold INTEGER, - max_message_size INTEGER, - max_num_recipients INTEGER, - member_moderation_notice TEXT, - mime_is_default_digest BOOLEAN, - moderator_password TEXT, - new_member_options INTEGER, - news_moderation INTEGER, - news_prefix_subject_too BOOLEAN, - nntp_host TEXT, - nondigestable BOOLEAN, - nonmember_rejection_notice TEXT, - obscure_addresses BOOLEAN, - owner_chain TEXT, - owner_pipeline TEXT, - personalize INTEGER, - post_id INTEGER, - posting_chain TEXT, - posting_pipeline TEXT, - preferred_language TEXT, - private_roster BOOLEAN, - display_name TEXT, - reject_these_nonmembers BYTEA, - reply_goes_to_list INTEGER, - reply_to_address TEXT, - require_explicit_destination BOOLEAN, - respond_to_post_requests BOOLEAN, - scrub_nondigest BOOLEAN, - send_goodbye_message BOOLEAN, - send_reminders BOOLEAN, - send_welcome_message BOOLEAN, - subject_prefix TEXT, - subscribe_auto_approval BYTEA, - subscribe_policy INTEGER, - topics BYTEA, - topics_bodylines_limit INTEGER, - topics_enabled BOOLEAN, - unsubscribe_policy INTEGER, - welcome_message_uri TEXT, - -- This was accidentally added by the PostgreSQL porter. - -- moderation_callback TEXT, - PRIMARY KEY (id) - ); - -CREATE TABLE _request ( - id SERIAL NOT NULL, - "key" TEXT, - request_type INTEGER, - data_hash BYTEA, - mailing_list_id INTEGER, - PRIMARY KEY (id) - -- XXX: config.db_reset() triggers IntegrityError - -- , - -- CONSTRAINT _request_mailing_list_id_fk - -- FOREIGN KEY (mailing_list_id) REFERENCES mailinglist (id) - ); - -CREATE TABLE acceptablealias ( - id SERIAL NOT NULL, - "alias" TEXT NOT NULL, - mailing_list_id INTEGER NOT NULL, - PRIMARY KEY (id) - -- XXX: config.db_reset() triggers IntegrityError - -- , - -- CONSTRAINT acceptablealias_mailing_list_id_fk - -- FOREIGN KEY (mailing_list_id) REFERENCES mailinglist (id) - ); -CREATE INDEX ix_acceptablealias_mailing_list_id - ON acceptablealias (mailing_list_id); -CREATE INDEX ix_acceptablealias_alias ON acceptablealias ("alias"); - -CREATE TABLE preferences ( - id SERIAL NOT NULL, - acknowledge_posts BOOLEAN, - hide_address BOOLEAN, - preferred_language TEXT, - receive_list_copy BOOLEAN, - receive_own_postings BOOLEAN, - delivery_mode INTEGER, - delivery_status INTEGER, - PRIMARY KEY (id) - ); - -CREATE TABLE address ( - id SERIAL NOT NULL, - email TEXT, - _original TEXT, - display_name TEXT, - verified_on TIMESTAMP, - registered_on TIMESTAMP, - user_id INTEGER, - preferences_id INTEGER, - PRIMARY KEY (id) - -- XXX: config.db_reset() triggers IntegrityError - -- , - -- CONSTRAINT address_preferences_id_fk - -- FOREIGN KEY (preferences_id) REFERENCES preferences (id) - ); - -CREATE TABLE "user" ( - id SERIAL NOT NULL, - display_name TEXT, - password BYTEA, - _user_id UUID, - _created_on TIMESTAMP, - _preferred_address_id INTEGER, - preferences_id INTEGER, - PRIMARY KEY (id) - -- XXX: config.db_reset() triggers IntegrityError - -- , - -- CONSTRAINT user_preferences_id_fk - -- FOREIGN KEY (preferences_id) REFERENCES preferences (id), - -- XXX: config.db_reset() triggers IntegrityError - -- CONSTRAINT _preferred_address_id_fk - -- FOREIGN KEY (_preferred_address_id) REFERENCES address (id) - ); -CREATE INDEX ix_user_user_id ON "user" (_user_id); - --- since user and address have circular foreign key refs, the --- constraint on the address table has to be added after --- the user table is created --- --- XXX: users.rst triggers an IntegrityError --- ALTER TABLE address ADD --- CONSTRAINT address_user_id_fk --- FOREIGN KEY (user_id) REFERENCES "user" (id); - -CREATE TABLE autoresponserecord ( - id SERIAL NOT NULL, - address_id INTEGER, - mailing_list_id INTEGER, - response_type INTEGER, - date_sent TIMESTAMP, - PRIMARY KEY (id) - -- XXX: config.db_reset() triggers IntegrityError - -- , - -- CONSTRAINT autoresponserecord_address_id_fk - -- FOREIGN KEY (address_id) REFERENCES address (id) - -- XXX: config.db_reset() triggers IntegrityError - -- , - -- CONSTRAINT autoresponserecord_mailing_list_id - -- FOREIGN KEY (mailing_list_id) REFERENCES mailinglist (id) - ); -CREATE INDEX ix_autoresponserecord_address_id - ON autoresponserecord (address_id); -CREATE INDEX ix_autoresponserecord_mailing_list_id - ON autoresponserecord (mailing_list_id); - -CREATE TABLE bounceevent ( - id SERIAL NOT NULL, - list_name TEXT, - email TEXT, - "timestamp" TIMESTAMP, - message_id TEXT, - context INTEGER, - processed BOOLEAN, - PRIMARY KEY (id) - ); - -CREATE TABLE contentfilter ( - id SERIAL NOT NULL, - mailing_list_id INTEGER, - filter_pattern TEXT, - filter_type INTEGER, - PRIMARY KEY (id), - CONSTRAINT contentfilter_mailing_list_id - FOREIGN KEY (mailing_list_id) REFERENCES mailinglist (id) - ); -CREATE INDEX ix_contentfilter_mailing_list_id - ON contentfilter (mailing_list_id); - -CREATE TABLE domain ( - id SERIAL NOT NULL, - mail_host TEXT, - base_url TEXT, - description TEXT, - contact_address TEXT, - PRIMARY KEY (id) - ); - -CREATE TABLE language ( - id SERIAL NOT NULL, - code TEXT, - PRIMARY KEY (id) - ); - -CREATE TABLE member ( - id SERIAL NOT NULL, - _member_id UUID, - role INTEGER, - mailing_list TEXT, - moderation_action INTEGER, - address_id INTEGER, - preferences_id INTEGER, - user_id INTEGER, - PRIMARY KEY (id) - -- XXX: config.db_reset() triggers IntegrityError - -- , - -- CONSTRAINT member_address_id_fk - -- FOREIGN KEY (address_id) REFERENCES address (id), - -- XXX: config.db_reset() triggers IntegrityError - -- CONSTRAINT member_preferences_id_fk - -- FOREIGN KEY (preferences_id) REFERENCES preferences (id), - -- CONSTRAINT member_user_id_fk - -- FOREIGN KEY (user_id) REFERENCES "user" (id) - ); -CREATE INDEX ix_member__member_id ON member (_member_id); -CREATE INDEX ix_member_address_id ON member (address_id); -CREATE INDEX ix_member_preferences_id ON member (preferences_id); - -CREATE TABLE message ( - id SERIAL NOT NULL, - message_id_hash BYTEA, - path BYTEA, - message_id TEXT, - PRIMARY KEY (id) - ); - -CREATE TABLE onelastdigest ( - id SERIAL NOT NULL, - mailing_list_id INTEGER, - address_id INTEGER, - delivery_mode INTEGER, - PRIMARY KEY (id), - CONSTRAINT onelastdigest_mailing_list_id_fk - FOREIGN KEY (mailing_list_id) REFERENCES mailinglist(id), - CONSTRAINT onelastdigest_address_id_fk - FOREIGN KEY (address_id) REFERENCES address(id) - ); - -CREATE TABLE pended ( - id SERIAL NOT NULL, - token BYTEA, - expiration_date TIMESTAMP, - PRIMARY KEY (id) - ); - -CREATE TABLE pendedkeyvalue ( - id SERIAL NOT NULL, - "key" TEXT, - value TEXT, - pended_id INTEGER, - PRIMARY KEY (id) - -- , - -- XXX: config.db_reset() triggers IntegrityError - -- CONSTRAINT pendedkeyvalue_pended_id_fk - -- FOREIGN KEY (pended_id) REFERENCES pended (id) - ); - -CREATE TABLE version ( - id SERIAL NOT NULL, - component TEXT, - version TEXT, - PRIMARY KEY (id) - ); - -CREATE INDEX ix__request_mailing_list_id ON _request (mailing_list_id); -CREATE INDEX ix_address_preferences_id ON address (preferences_id); -CREATE INDEX ix_address_user_id ON address (user_id); -CREATE INDEX ix_pendedkeyvalue_pended_id ON pendedkeyvalue (pended_id); -CREATE INDEX ix_user_preferences_id ON "user" (preferences_id); - -CREATE TABLE ban ( - id SERIAL NOT NULL, - email TEXT, - mailing_list TEXT, - PRIMARY KEY (id) - ); - -CREATE TABLE uid ( - -- Keep track of all assigned unique ids to prevent re-use. - id SERIAL NOT NULL, - uid UUID, - PRIMARY KEY (id) - ); -CREATE INDEX ix_uid_uid ON uid (uid); diff --git a/src/mailman/database/schema/sqlite.sql b/src/mailman/database/schema/sqlite.sql deleted file mode 100644 index e2b2d3814..000000000 --- a/src/mailman/database/schema/sqlite.sql +++ /dev/null @@ -1,327 +0,0 @@ --- THIS FILE HAS BEEN FROZEN AS OF 3.0b1 --- SEE THE SCHEMA MIGRATIONS FOR DIFFERENCES. - -PRAGMA foreign_keys = ON; - -CREATE TABLE _request ( - id INTEGER NOT NULL, - "key" TEXT, - request_type INTEGER, - data_hash TEXT, - mailing_list_id INTEGER, - PRIMARY KEY (id), - CONSTRAINT _request_mailing_list_id_fk - FOREIGN KEY (mailing_list_id) REFERENCES mailinglist (id) - ); - -CREATE TABLE acceptablealias ( - id INTEGER NOT NULL, - "alias" TEXT NOT NULL, - mailing_list_id INTEGER NOT NULL, - PRIMARY KEY (id), - CONSTRAINT acceptablealias_mailing_list_id_fk - FOREIGN KEY (mailing_list_id) REFERENCES mailinglist (id) - ); -CREATE INDEX ix_acceptablealias_mailing_list_id - ON acceptablealias (mailing_list_id); -CREATE INDEX ix_acceptablealias_alias ON acceptablealias ("alias"); - -CREATE TABLE address ( - id INTEGER NOT NULL, - email TEXT, - _original TEXT, - display_name TEXT, - verified_on TIMESTAMP, - registered_on TIMESTAMP, - user_id INTEGER, - preferences_id INTEGER, - PRIMARY KEY (id), - CONSTRAINT address_user_id_fk - FOREIGN KEY (user_id) REFERENCES user (id), - CONSTRAINT address_preferences_id_fk - FOREIGN KEY (preferences_id) REFERENCES preferences (id) - ); - -CREATE TABLE autoresponserecord ( - id INTEGER NOT NULL, - address_id INTEGER, - mailing_list_id INTEGER, - response_type INTEGER, - date_sent TIMESTAMP, - PRIMARY KEY (id), - CONSTRAINT autoresponserecord_address_id_fk - FOREIGN KEY (address_id) REFERENCES address (id), - CONSTRAINT autoresponserecord_mailing_list_id - FOREIGN KEY (mailing_list_id) REFERENCES mailinglist (id) - ); -CREATE INDEX ix_autoresponserecord_address_id - ON autoresponserecord (address_id); -CREATE INDEX ix_autoresponserecord_mailing_list_id - ON autoresponserecord (mailing_list_id); - -CREATE TABLE bounceevent ( - id INTEGER NOT NULL, - list_name TEXT, - email TEXT, - 'timestamp' TIMESTAMP, - message_id TEXT, - context INTEGER, - processed BOOLEAN, - PRIMARY KEY (id) - ); - -CREATE TABLE contentfilter ( - id INTEGER NOT NULL, - mailing_list_id INTEGER, - filter_pattern TEXT, - filter_type INTEGER, - PRIMARY KEY (id), - CONSTRAINT contentfilter_mailing_list_id - FOREIGN KEY (mailing_list_id) REFERENCES mailinglist (id) - ); -CREATE INDEX ix_contentfilter_mailing_list_id - ON contentfilter (mailing_list_id); - -CREATE TABLE domain ( - id INTEGER NOT NULL, - mail_host TEXT, - base_url TEXT, - description TEXT, - contact_address TEXT, - PRIMARY KEY (id) - ); - -CREATE TABLE language ( - id INTEGER NOT NULL, - code TEXT, - PRIMARY KEY (id) - ); - -CREATE TABLE mailinglist ( - id INTEGER NOT NULL, - -- List identity - list_name TEXT, - mail_host TEXT, - include_list_post_header BOOLEAN, - include_rfc2369_headers BOOLEAN, - -- Attributes not directly modifiable via the web u/i - created_at TIMESTAMP, - admin_member_chunksize INTEGER, - next_request_id INTEGER, - next_digest_number INTEGER, - digest_last_sent_at TIMESTAMP, - volume INTEGER, - last_post_at TIMESTAMP, - accept_these_nonmembers BLOB, - acceptable_aliases_id INTEGER, - admin_immed_notify BOOLEAN, - admin_notify_mchanges BOOLEAN, - administrivia BOOLEAN, - advertised BOOLEAN, - anonymous_list BOOLEAN, - archive BOOLEAN, - archive_private BOOLEAN, - archive_volume_frequency INTEGER, - -- Automatic responses. - autorespond_owner INTEGER, - autoresponse_owner_text TEXT, - autorespond_postings INTEGER, - autoresponse_postings_text TEXT, - autorespond_requests INTEGER, - autoresponse_request_text TEXT, - autoresponse_grace_period TEXT, - -- Bounces. - forward_unrecognized_bounces_to INTEGER, - process_bounces BOOLEAN, - bounce_info_stale_after TEXT, - bounce_matching_headers TEXT, - bounce_notify_owner_on_disable BOOLEAN, - bounce_notify_owner_on_removal BOOLEAN, - bounce_score_threshold INTEGER, - bounce_you_are_disabled_warnings INTEGER, - bounce_you_are_disabled_warnings_interval TEXT, - -- Content filtering. - filter_action INTEGER, - filter_content BOOLEAN, - collapse_alternatives BOOLEAN, - convert_html_to_plaintext BOOLEAN, - default_member_action INTEGER, - default_nonmember_action INTEGER, - description TEXT, - digest_footer_uri TEXT, - digest_header_uri TEXT, - digest_is_default BOOLEAN, - digest_send_periodic BOOLEAN, - digest_size_threshold FLOAT, - digest_volume_frequency INTEGER, - digestable BOOLEAN, - discard_these_nonmembers BLOB, - emergency BOOLEAN, - encode_ascii_prefixes BOOLEAN, - first_strip_reply_to BOOLEAN, - footer_uri TEXT, - forward_auto_discards BOOLEAN, - gateway_to_mail BOOLEAN, - gateway_to_news BOOLEAN, - generic_nonmember_action INTEGER, - goodbye_message_uri TEXT, - header_matches BLOB, - header_uri TEXT, - hold_these_nonmembers BLOB, - info TEXT, - linked_newsgroup TEXT, - max_days_to_hold INTEGER, - max_message_size INTEGER, - max_num_recipients INTEGER, - member_moderation_notice TEXT, - mime_is_default_digest BOOLEAN, - moderator_password TEXT, - new_member_options INTEGER, - news_moderation INTEGER, - news_prefix_subject_too BOOLEAN, - nntp_host TEXT, - nondigestable BOOLEAN, - nonmember_rejection_notice TEXT, - obscure_addresses BOOLEAN, - owner_chain TEXT, - owner_pipeline TEXT, - personalize INTEGER, - post_id INTEGER, - posting_chain TEXT, - posting_pipeline TEXT, - preferred_language TEXT, - private_roster BOOLEAN, - display_name TEXT, - reject_these_nonmembers BLOB, - reply_goes_to_list INTEGER, - reply_to_address TEXT, - require_explicit_destination BOOLEAN, - respond_to_post_requests BOOLEAN, - scrub_nondigest BOOLEAN, - send_goodbye_message BOOLEAN, - send_reminders BOOLEAN, - send_welcome_message BOOLEAN, - subject_prefix TEXT, - subscribe_auto_approval BLOB, - subscribe_policy INTEGER, - topics BLOB, - topics_bodylines_limit INTEGER, - topics_enabled BOOLEAN, - unsubscribe_policy INTEGER, - welcome_message_uri TEXT, - PRIMARY KEY (id) - ); - -CREATE TABLE member ( - id INTEGER NOT NULL, - _member_id TEXT, - role INTEGER, - mailing_list TEXT, - moderation_action INTEGER, - address_id INTEGER, - preferences_id INTEGER, - user_id INTEGER, - PRIMARY KEY (id), - CONSTRAINT member_address_id_fk - FOREIGN KEY (address_id) REFERENCES address (id), - CONSTRAINT member_preferences_id_fk - FOREIGN KEY (preferences_id) REFERENCES preferences (id) - CONSTRAINT member_user_id_fk - FOREIGN KEY (user_id) REFERENCES user (id) - ); -CREATE INDEX ix_member__member_id ON member (_member_id); -CREATE INDEX ix_member_address_id ON member (address_id); -CREATE INDEX ix_member_preferences_id ON member (preferences_id); - -CREATE TABLE message ( - id INTEGER NOT NULL, - message_id_hash TEXT, - path TEXT, - message_id TEXT, - PRIMARY KEY (id) - ); - -CREATE TABLE onelastdigest ( - id INTEGER NOT NULL, - mailing_list_id INTEGER, - address_id INTEGER, - delivery_mode INTEGER, - PRIMARY KEY (id), - CONSTRAINT onelastdigest_mailing_list_id_fk - FOREIGN KEY (mailing_list_id) REFERENCES mailinglist(id), - CONSTRAINT onelastdigest_address_id_fk - FOREIGN KEY (address_id) REFERENCES address(id) - ); - -CREATE TABLE pended ( - id INTEGER NOT NULL, - token TEXT, - expiration_date TIMESTAMP, - PRIMARY KEY (id) - ); - -CREATE TABLE pendedkeyvalue ( - id INTEGER NOT NULL, - "key" TEXT, - value TEXT, - pended_id INTEGER, - PRIMARY KEY (id), - CONSTRAINT pendedkeyvalue_pended_id_fk - FOREIGN KEY (pended_id) REFERENCES pended (id) - ); - -CREATE TABLE preferences ( - id INTEGER NOT NULL, - acknowledge_posts BOOLEAN, - hide_address BOOLEAN, - preferred_language TEXT, - receive_list_copy BOOLEAN, - receive_own_postings BOOLEAN, - delivery_mode INTEGER, - delivery_status INTEGER, - PRIMARY KEY (id) - ); - -CREATE TABLE user ( - id INTEGER NOT NULL, - display_name TEXT, - password BINARY, - _user_id TEXT, - _created_on TIMESTAMP, - _preferred_address_id INTEGER, - preferences_id INTEGER, - PRIMARY KEY (id), - CONSTRAINT user_preferences_id_fk - FOREIGN KEY (preferences_id) REFERENCES preferences (id), - CONSTRAINT _preferred_address_id_fk - FOREIGN KEY (_preferred_address_id) REFERENCES address (id) - ); -CREATE INDEX ix_user_user_id ON user (_user_id); - -CREATE TABLE version ( - id INTEGER NOT NULL, - component TEXT, - version TEXT, - PRIMARY KEY (id) - ); - -CREATE INDEX ix__request_mailing_list_id ON _request (mailing_list_id); -CREATE INDEX ix_address_preferences_id ON address (preferences_id); -CREATE INDEX ix_address_user_id ON address (user_id); -CREATE INDEX ix_pendedkeyvalue_pended_id ON pendedkeyvalue (pended_id); -CREATE INDEX ix_user_preferences_id ON user (preferences_id); - -CREATE TABLE ban ( - id INTEGER NOT NULL, - email TEXT, - mailing_list TEXT, - PRIMARY KEY (id) - ); - -CREATE TABLE uid ( - -- Keep track of all assigned unique ids to prevent re-use. - id INTEGER NOT NULL, - uid TEXT, - PRIMARY KEY (id) - ); -CREATE INDEX ix_uid_uid ON uid (uid); diff --git a/src/mailman/database/schema/sqlite_20120407000000_01.sql b/src/mailman/database/schema/sqlite_20120407000000_01.sql deleted file mode 100644 index a8db75be9..000000000 --- a/src/mailman/database/schema/sqlite_20120407000000_01.sql +++ /dev/null @@ -1,280 +0,0 @@ --- This file contains the sqlite3 schema migration from --- 3.0b1 TO 3.0b2 --- --- 3.0b2 has been released thus you MAY NOT edit this file. - --- For SQLite3 migration strategy, see --- http://sqlite.org/faq.html#q11 - --- REMOVALS from the mailinglist table: --- REM archive --- REM archive_private --- REM archive_volume_frequency --- REM include_list_post_header --- REM news_moderation --- REM news_prefix_subject_too --- REM nntp_host --- --- ADDS to the mailing list table: --- ADD allow_list_posts --- ADD archive_policy --- ADD list_id --- ADD newsgroup_moderation --- ADD nntp_prefix_subject_too - --- LP: #971013 --- LP: #967238 - --- REMOVALS from the member table: --- REM mailing_list - --- ADDS to the member table: --- ADD list_id - --- LP: #1024509 - - -CREATE TABLE mailinglist_backup ( - id INTEGER NOT NULL, - -- List identity - list_name TEXT, - mail_host TEXT, - allow_list_posts BOOLEAN, - include_rfc2369_headers BOOLEAN, - -- Attributes not directly modifiable via the web u/i - created_at TIMESTAMP, - admin_member_chunksize INTEGER, - next_request_id INTEGER, - next_digest_number INTEGER, - digest_last_sent_at TIMESTAMP, - volume INTEGER, - last_post_at TIMESTAMP, - accept_these_nonmembers BLOB, - acceptable_aliases_id INTEGER, - admin_immed_notify BOOLEAN, - admin_notify_mchanges BOOLEAN, - administrivia BOOLEAN, - advertised BOOLEAN, - anonymous_list BOOLEAN, - -- Automatic responses. - autorespond_owner INTEGER, - autoresponse_owner_text TEXT, - autorespond_postings INTEGER, - autoresponse_postings_text TEXT, - autorespond_requests INTEGER, - autoresponse_request_text TEXT, - autoresponse_grace_period TEXT, - -- Bounces. - forward_unrecognized_bounces_to INTEGER, - process_bounces BOOLEAN, - bounce_info_stale_after TEXT, - bounce_matching_headers TEXT, - bounce_notify_owner_on_disable BOOLEAN, - bounce_notify_owner_on_removal BOOLEAN, - bounce_score_threshold INTEGER, - bounce_you_are_disabled_warnings INTEGER, - bounce_you_are_disabled_warnings_interval TEXT, - -- Content filtering. - filter_action INTEGER, - filter_content BOOLEAN, - collapse_alternatives BOOLEAN, - convert_html_to_plaintext BOOLEAN, - default_member_action INTEGER, - default_nonmember_action INTEGER, - description TEXT, - digest_footer_uri TEXT, - digest_header_uri TEXT, - digest_is_default BOOLEAN, - digest_send_periodic BOOLEAN, - digest_size_threshold FLOAT, - digest_volume_frequency INTEGER, - digestable BOOLEAN, - discard_these_nonmembers BLOB, - emergency BOOLEAN, - encode_ascii_prefixes BOOLEAN, - first_strip_reply_to BOOLEAN, - footer_uri TEXT, - forward_auto_discards BOOLEAN, - gateway_to_mail BOOLEAN, - gateway_to_news BOOLEAN, - goodbye_message_uri TEXT, - header_matches BLOB, - header_uri TEXT, - hold_these_nonmembers BLOB, - info TEXT, - linked_newsgroup TEXT, - max_days_to_hold INTEGER, - max_message_size INTEGER, - max_num_recipients INTEGER, - member_moderation_notice TEXT, - mime_is_default_digest BOOLEAN, - moderator_password TEXT, - new_member_options INTEGER, - nondigestable BOOLEAN, - nonmember_rejection_notice TEXT, - obscure_addresses BOOLEAN, - owner_chain TEXT, - owner_pipeline TEXT, - personalize INTEGER, - post_id INTEGER, - posting_chain TEXT, - posting_pipeline TEXT, - preferred_language TEXT, - private_roster BOOLEAN, - display_name TEXT, - reject_these_nonmembers BLOB, - reply_goes_to_list INTEGER, - reply_to_address TEXT, - require_explicit_destination BOOLEAN, - respond_to_post_requests BOOLEAN, - scrub_nondigest BOOLEAN, - send_goodbye_message BOOLEAN, - send_reminders BOOLEAN, - send_welcome_message BOOLEAN, - subject_prefix TEXT, - subscribe_auto_approval BLOB, - subscribe_policy INTEGER, - topics BLOB, - topics_bodylines_limit INTEGER, - topics_enabled BOOLEAN, - unsubscribe_policy INTEGER, - welcome_message_uri TEXT, - PRIMARY KEY (id) - ); - -INSERT INTO mailinglist_backup SELECT - id, - -- List identity - list_name, - mail_host, - include_list_post_header, - include_rfc2369_headers, - -- Attributes not directly modifiable via the web u/i - created_at, - admin_member_chunksize, - next_request_id, - next_digest_number, - digest_last_sent_at, - volume, - last_post_at, - accept_these_nonmembers, - acceptable_aliases_id, - admin_immed_notify, - admin_notify_mchanges, - administrivia, - advertised, - anonymous_list, - -- Automatic responses. - autorespond_owner, - autoresponse_owner_text, - autorespond_postings, - autoresponse_postings_text, - autorespond_requests, - autoresponse_request_text, - autoresponse_grace_period, - -- Bounces. - forward_unrecognized_bounces_to, - process_bounces, - bounce_info_stale_after, - bounce_matching_headers, - bounce_notify_owner_on_disable, - bounce_notify_owner_on_removal, - bounce_score_threshold, - bounce_you_are_disabled_warnings, - bounce_you_are_disabled_warnings_interval, - -- Content filtering. - filter_action, - filter_content, - collapse_alternatives, - convert_html_to_plaintext, - default_member_action, - default_nonmember_action, - description, - digest_footer_uri, - digest_header_uri, - digest_is_default, - digest_send_periodic, - digest_size_threshold, - digest_volume_frequency, - digestable, - discard_these_nonmembers, - emergency, - encode_ascii_prefixes, - first_strip_reply_to, - footer_uri, - forward_auto_discards, - gateway_to_mail, - gateway_to_news, - goodbye_message_uri, - header_matches, - header_uri, - hold_these_nonmembers, - info, - linked_newsgroup, - max_days_to_hold, - max_message_size, - max_num_recipients, - member_moderation_notice, - mime_is_default_digest, - moderator_password, - new_member_options, - nondigestable, - nonmember_rejection_notice, - obscure_addresses, - owner_chain, - owner_pipeline, - personalize, - post_id, - posting_chain, - posting_pipeline, - preferred_language, - private_roster, - display_name, - reject_these_nonmembers, - reply_goes_to_list, - reply_to_address, - require_explicit_destination, - respond_to_post_requests, - scrub_nondigest, - send_goodbye_message, - send_reminders, - send_welcome_message, - subject_prefix, - subscribe_auto_approval, - subscribe_policy, - topics, - topics_bodylines_limit, - topics_enabled, - unsubscribe_policy, - welcome_message_uri - FROM mailinglist; - -CREATE TABLE member_backup( - id INTEGER NOT NULL, - _member_id TEXT, - role INTEGER, - moderation_action INTEGER, - address_id INTEGER, - preferences_id INTEGER, - user_id INTEGER, - PRIMARY KEY (id) - ); - -INSERT INTO member_backup SELECT - id, - _member_id, - role, - moderation_action, - address_id, - preferences_id, - user_id - FROM member; - - --- Add the new columns. They'll get inserted at the Python layer. -ALTER TABLE mailinglist_backup ADD COLUMN archive_policy INTEGER; -ALTER TABLE mailinglist_backup ADD COLUMN list_id TEXT; -ALTER TABLE mailinglist_backup ADD COLUMN nntp_prefix_subject_too INTEGER; -ALTER TABLE mailinglist_backup ADD COLUMN newsgroup_moderation INTEGER; - -ALTER TABLE member_backup ADD COLUMN list_id TEXT; diff --git a/src/mailman/database/schema/sqlite_20121015000000_01.sql b/src/mailman/database/schema/sqlite_20121015000000_01.sql deleted file mode 100644 index a80dc03df..000000000 --- a/src/mailman/database/schema/sqlite_20121015000000_01.sql +++ /dev/null @@ -1,230 +0,0 @@ --- This file contains the sqlite3 schema migration from --- 3.0b2 TO 3.0b3 --- --- 3.0b3 has been released thus you MAY NOT edit this file. - --- REMOVALS from the ban table: --- REM mailing_list - --- ADDS to the ban table: --- ADD list_id - -CREATE TABLE ban_backup ( - id INTEGER NOT NULL, - email TEXT, - PRIMARY KEY (id) - ); - -INSERT INTO ban_backup SELECT - id, email - FROM ban; - -ALTER TABLE ban_backup ADD COLUMN list_id TEXT; - --- REMOVALS from the mailinglist table. --- REM new_member_options --- REM send_reminders --- REM subscribe_policy --- REM unsubscribe_policy --- REM subscribe_auto_approval --- REM private_roster --- REM admin_member_chunksize - -CREATE TABLE mailinglist_backup ( - id INTEGER NOT NULL, - list_name TEXT, - mail_host TEXT, - allow_list_posts BOOLEAN, - include_rfc2369_headers BOOLEAN, - created_at TIMESTAMP, - next_request_id INTEGER, - next_digest_number INTEGER, - digest_last_sent_at TIMESTAMP, - volume INTEGER, - last_post_at TIMESTAMP, - accept_these_nonmembers BLOB, - acceptable_aliases_id INTEGER, - admin_immed_notify BOOLEAN, - admin_notify_mchanges BOOLEAN, - administrivia BOOLEAN, - advertised BOOLEAN, - anonymous_list BOOLEAN, - autorespond_owner INTEGER, - autoresponse_owner_text TEXT, - autorespond_postings INTEGER, - autoresponse_postings_text TEXT, - autorespond_requests INTEGER, - autoresponse_request_text TEXT, - autoresponse_grace_period TEXT, - forward_unrecognized_bounces_to INTEGER, - process_bounces BOOLEAN, - bounce_info_stale_after TEXT, - bounce_matching_headers TEXT, - bounce_notify_owner_on_disable BOOLEAN, - bounce_notify_owner_on_removal BOOLEAN, - bounce_score_threshold INTEGER, - bounce_you_are_disabled_warnings INTEGER, - bounce_you_are_disabled_warnings_interval TEXT, - filter_action INTEGER, - filter_content BOOLEAN, - collapse_alternatives BOOLEAN, - convert_html_to_plaintext BOOLEAN, - default_member_action INTEGER, - default_nonmember_action INTEGER, - description TEXT, - digest_footer_uri TEXT, - digest_header_uri TEXT, - digest_is_default BOOLEAN, - digest_send_periodic BOOLEAN, - digest_size_threshold FLOAT, - digest_volume_frequency INTEGER, - digestable BOOLEAN, - discard_these_nonmembers BLOB, - emergency BOOLEAN, - encode_ascii_prefixes BOOLEAN, - first_strip_reply_to BOOLEAN, - footer_uri TEXT, - forward_auto_discards BOOLEAN, - gateway_to_mail BOOLEAN, - gateway_to_news BOOLEAN, - goodbye_message_uri TEXT, - header_matches BLOB, - header_uri TEXT, - hold_these_nonmembers BLOB, - info TEXT, - linked_newsgroup TEXT, - max_days_to_hold INTEGER, - max_message_size INTEGER, - max_num_recipients INTEGER, - member_moderation_notice TEXT, - mime_is_default_digest BOOLEAN, - moderator_password TEXT, - nondigestable BOOLEAN, - nonmember_rejection_notice TEXT, - obscure_addresses BOOLEAN, - owner_chain TEXT, - owner_pipeline TEXT, - personalize INTEGER, - post_id INTEGER, - posting_chain TEXT, - posting_pipeline TEXT, - preferred_language TEXT, - display_name TEXT, - reject_these_nonmembers BLOB, - reply_goes_to_list INTEGER, - reply_to_address TEXT, - require_explicit_destination BOOLEAN, - respond_to_post_requests BOOLEAN, - scrub_nondigest BOOLEAN, - send_goodbye_message BOOLEAN, - send_welcome_message BOOLEAN, - subject_prefix TEXT, - topics BLOB, - topics_bodylines_limit INTEGER, - topics_enabled BOOLEAN, - welcome_message_uri TEXT, - archive_policy INTEGER, - list_id TEXT, - nntp_prefix_subject_too INTEGER, - newsgroup_moderation INTEGER, - PRIMARY KEY (id) - ); - -INSERT INTO mailinglist_backup SELECT - id, - list_name, - mail_host, - allow_list_posts, - include_rfc2369_headers, - created_at, - next_request_id, - next_digest_number, - digest_last_sent_at, - volume, - last_post_at, - accept_these_nonmembers, - acceptable_aliases_id, - admin_immed_notify, - admin_notify_mchanges, - administrivia, - advertised, - anonymous_list, - autorespond_owner, - autoresponse_owner_text, - autorespond_postings, - autoresponse_postings_text, - autorespond_requests, - autoresponse_request_text, - autoresponse_grace_period, - forward_unrecognized_bounces_to, - process_bounces, - bounce_info_stale_after, - bounce_matching_headers, - bounce_notify_owner_on_disable, - bounce_notify_owner_on_removal, - bounce_score_threshold, - bounce_you_are_disabled_warnings, - bounce_you_are_disabled_warnings_interval, - filter_action, - filter_content, - collapse_alternatives, - convert_html_to_plaintext, - default_member_action, - default_nonmember_action, - description, - digest_footer_uri, - digest_header_uri, - digest_is_default, - digest_send_periodic, - digest_size_threshold, - digest_volume_frequency, - digestable, - discard_these_nonmembers, - emergency, - encode_ascii_prefixes, - first_strip_reply_to, - footer_uri, - forward_auto_discards, - gateway_to_mail, - gateway_to_news, - goodbye_message_uri, - header_matches, - header_uri, - hold_these_nonmembers, - info, - linked_newsgroup, - max_days_to_hold, - max_message_size, - max_num_recipients, - member_moderation_notice, - mime_is_default_digest, - moderator_password, - nondigestable, - nonmember_rejection_notice, - obscure_addresses, - owner_chain, - owner_pipeline, - personalize, - post_id, - posting_chain, - posting_pipeline, - preferred_language, - display_name, - reject_these_nonmembers, - reply_goes_to_list, - reply_to_address, - require_explicit_destination, - respond_to_post_requests, - scrub_nondigest, - send_goodbye_message, - send_welcome_message, - subject_prefix, - topics, - topics_bodylines_limit, - topics_enabled, - welcome_message_uri, - archive_policy, - list_id, - nntp_prefix_subject_too, - newsgroup_moderation - FROM mailinglist; diff --git a/src/mailman/database/schema/sqlite_20130406000000_01.sql b/src/mailman/database/schema/sqlite_20130406000000_01.sql deleted file mode 100644 index fe30ed247..000000000 --- a/src/mailman/database/schema/sqlite_20130406000000_01.sql +++ /dev/null @@ -1,46 +0,0 @@ --- This file contains the SQLite schema migration from --- 3.0b3 to 3.0b4 --- --- After 3.0b4 is released you may not edit this file. - --- For SQLite3 migration strategy, see --- http://sqlite.org/faq.html#q11 - --- ADD listarchiver table. - --- REMOVALs from the bounceevent table: --- REM list_name - --- ADDs to the bounceevent table: --- ADD list_id - --- ADDs to the mailinglist table: --- ADD archiver_id - -CREATE TABLE bounceevent_backup ( - id INTEGER NOT NULL, - email TEXT, - 'timestamp' TIMESTAMP, - message_id TEXT, - context INTEGER, - processed BOOLEAN, - PRIMARY KEY (id) - ); - -INSERT INTO bounceevent_backup SELECT - id, email, "timestamp", message_id, - context, processed - FROM bounceevent; - -ALTER TABLE bounceevent_backup ADD COLUMN list_id TEXT; - -CREATE TABLE listarchiver ( - id INTEGER NOT NULL, - mailing_list_id INTEGER NOT NULL, - name TEXT NOT NULL, - _is_enabled BOOLEAN, - PRIMARY KEY (id) - ); - -CREATE INDEX ix_listarchiver_mailing_list_id - ON listarchiver(mailing_list_id); |
