aboutsummaryrefslogtreecommitdiffstats
path: root/db/downgrade_0051---0050.sql
diff options
context:
space:
mode:
Diffstat (limited to 'db/downgrade_0051---0050.sql')
-rw-r--r--db/downgrade_0051---0050.sql36
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;
+