From ee1d099c6acdb38a173a7455804724f3a1b78836 Mon Sep 17 00:00:00 2001
From: Nathan Perry <avaglir@gmail.com>
Date: Thu, 5 Apr 2018 22:52:02 -0400
Subject: consolidate memes to one table

---
 migrations/2018-04-06-005800_consolidate_memes/up.sql | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)
 create mode 100644 migrations/2018-04-06-005800_consolidate_memes/up.sql

(limited to 'migrations/2018-04-06-005800_consolidate_memes/up.sql')

diff --git a/migrations/2018-04-06-005800_consolidate_memes/up.sql b/migrations/2018-04-06-005800_consolidate_memes/up.sql
new file mode 100644
index 0000000..084525b
--- /dev/null
+++ b/migrations/2018-04-06-005800_consolidate_memes/up.sql
@@ -0,0 +1,19 @@
+ALTER TABLE text_memes ADD CONSTRAINT text_memes_content_not_all_null
+    CHECK (content IS NOT NULL OR image_id IS NOT NULL OR audio_id IS NOT NULL);
+
+ALTER TABLE text_memes ADD CONSTRAINT text_memes_image_or_audio_null
+    CHECK (image_id IS NULL OR audio_id IS NULL);
+
+ALTER TABLE text_memes ALTER COLUMN content DROP NOT NULL;
+
+INSERT INTO text_memes(audio_id, metadata_id, title) SELECT audio_id, metadata_id, title FROM audio_memes;
+INSERT INTO text_memes(image_id, metadata_id, title) SELECT image_id, metadata_id, title FROM image_memes;
+
+DROP TABLE audio_memes;
+DROP TABLE image_memes;
+
+ALTER TABLE text_memes RENAME TO memes;
+
+CREATE INDEX memes_audio    ON memes (audio_id);
+CREATE INDEX memes_image    ON memes (image_id);
+CREATE INDEX memes_content  ON memes (content);
-- 
cgit v1.3.1

