aboutsummaryrefslogtreecommitdiffstats
path: root/internal/db/migrations/blog/00013_page_kind.sql
diff options
context:
space:
mode:
Diffstat (limited to 'internal/db/migrations/blog/00013_page_kind.sql')
-rw-r--r--internal/db/migrations/blog/00013_page_kind.sql16
1 files changed, 16 insertions, 0 deletions
diff --git a/internal/db/migrations/blog/00013_page_kind.sql b/internal/db/migrations/blog/00013_page_kind.sql
new file mode 100644
index 0000000..072d53d
--- /dev/null
+++ b/internal/db/migrations/blog/00013_page_kind.sql
@@ -0,0 +1,16 @@
+-- +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;