summaryrefslogtreecommitdiff
path: root/migrations/2018-04-06-005800_consolidate_memes/down.sql
blob: 339bf8f5cde063149974961d28f2fb85e6b13bc1 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
DROP INDEX memes_audio;
DROP INDEX memes_content;
DROP INDEX memes_image;

ALTER TABLE memes RENAME TO text_memes;

CREATE TABLE image_memes (
    id          SERIAL PRIMARY KEY,
    title       varchar UNIQUE NOT NULL,
    image_id    INTEGER REFERENCES images NOT NULL,

    metadata_id INTEGER REFERENCES metadata UNIQUE NOT NULL,
    UNIQUE(title, image_id)
);


CREATE TABLE audio_memes (
    id          SERIAL PRIMARY KEY,
    title       varchar UNIQUE NOT NULL,
    audio_id    INTEGER REFERENCES audio NOT NULL,

    metadata_id INTEGER REFERENCES metadata UNIQUE NOT NULL,
    UNIQUE(title, audio_id)
);


INSERT INTO audio_memes(title, audio_id, metadata_id) SELECT title, audio_id, metadata_id FROM text_memes
    WHERE audio_id IS NOT NULL AND content IS NULL;

DELETE FROM text_memes WHERE audio_id IS NOT NULL AND content IS NULL;


INSERT INTO image_memes(title, image_id, metadata_id) SELECT title, image_id, metadata_id FROM text_memes
    WHERE image_id IS NOT NULL AND content IS NULL;

DELETE FROM text_memes WHERE image_id IS NOT NULL AND content IS NULL;


ALTER TABLE text_memes ALTER COLUMN content SET NOT NULL;
ALTER TABLE text_memes DROP CONSTRAINT text_memes_image_or_audio_null;
ALTER TABLE text_memes DROP CONSTRAINT text_memes_content_not_all_null;