diff options
Diffstat (limited to 'db/downgrade_0051---0050.sql')
-rw-r--r-- | db/downgrade_0051---0050.sql | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/db/downgrade_0051---0050.sql b/db/downgrade_0051---0050.sql new file mode 100644 index 000000000..424420e29 --- /dev/null +++ b/db/downgrade_0051---0050.sql @@ -0,0 +1,36 @@ +BEGIN; + +ALTER TABLE contacts ADD confirmed boolean; +ALTER TABLE contacts ADD deleted boolean; + +UPDATE contacts SET confirmed='t', deleted='t' WHERE state = 'deleted'; +UPDATE contacts SET confirmed='f', deleted='t' WHERE state = 'inactive'; +UPDATE contacts SET confirmed='t', deleted='f' WHERE state = 'confirmed'; +UPDATE contacts SET confirmed='f', deleted='f' WHERE state = 'unconfirmed'; + +ALTER TABLE contacts ALTER COLUMN confirmed SET NOT NULL; +ALTER TABLE contacts ALTER COLUMN deleted SET NOT NULL; +ALTER TABLE contacts DROP COLUMN state; + +ALTER TABLE contacts_history ADD confirmed boolean; +ALTER TABLE contacts_history ADD deleted boolean; + +UPDATE contacts_history SET confirmed='t', deleted='t' WHERE state = 'deleted'; +UPDATE contacts_history SET confirmed='f', deleted='t' WHERE state = 'inactive'; +UPDATE contacts_history SET confirmed='t', deleted='f' WHERE state = 'confirmed'; +UPDATE contacts_history SET confirmed='f', deleted='f' WHERE state = 'unconfirmed'; + +ALTER TABLE contacts_history ALTER COLUMN confirmed SET NOT NULL; +ALTER TABLE contacts_history ALTER COLUMN deleted SET NOT NULL; +ALTER TABLE contacts_history DROP COLUMN state; + +CREATE OR REPLACE FUNCTION contacts_updated() + returns trigger as ' + begin + insert into contacts_history (contact_id, body_id, category, email, editor, whenedited, note, confirmed, deleted) values (new.id, new.body_id, new.category, new.email, new.editor, new.whenedited, new.note, new.confirmed, new.deleted); + return new; + end; +' language 'plpgsql'; + +COMMIT; + |