-- +goose Up -- Special pages: a page's kind says what it shows instead of posts. The -- first special kind is a gallery of the library's images; the images a -- gallery leaves out are rows here, so a deleted file drops out by itself. ALTER TABLE pages ADD COLUMN kind text NOT NULL DEFAULT 'posts' CHECK (kind IN ('posts', 'gallery')); CREATE TABLE page_hidden_files ( page_id bigint NOT NULL REFERENCES pages(id) ON DELETE CASCADE, file_id uuid NOT NULL REFERENCES files(id) ON DELETE CASCADE, PRIMARY KEY (page_id, file_id) ); -- +goose Down DROP TABLE page_hidden_files; ALTER TABLE pages DROP COLUMN kind;