ForFarm/backend/migrations/00004_create_knowledge_hub_tables.sql
2025-04-01 13:42:07 +07:00

41 lines
2.1 KiB
SQL

-- +goose Up
-- +goose StatementBegin
CREATE TABLE knowledge_articles (
uuid UUID PRIMARY KEY DEFAULT gen_random_uuid(),
title TEXT NOT NULL,
content TEXT NOT NULL,
author TEXT NOT NULL,
publish_date TIMESTAMPTZ NOT NULL,
read_time TEXT NOT NULL,
categories TEXT[] NOT NULL,
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
);
CREATE TABLE table_of_contents (
uuid UUID PRIMARY KEY DEFAULT gen_random_uuid(),
article_id UUID NOT NULL,
title TEXT NOT NULL,
"order" INT NOT NULL,
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
CONSTRAINT fk_toc_article FOREIGN KEY (article_id) REFERENCES knowledge_articles(uuid) ON DELETE CASCADE
);
CREATE TABLE related_articles (
uuid UUID PRIMARY KEY DEFAULT gen_random_uuid(),
article_id UUID NOT NULL,
related_title TEXT NOT NULL,
related_tag TEXT NOT NULL,
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
CONSTRAINT fk_related_article FOREIGN KEY (article_id) REFERENCES knowledge_articles(uuid) ON DELETE CASCADE
);
-- +goose StatementEnd
-- +goose Down
-- +goose StatementBegin
DROP TABLE IF EXISTS related_articles;
DROP TABLE IF EXISTS table_of_contents;
DROP TABLE IF EXISTS knowledge_articles;
-- +goose StatementEnd