From 3ac8d2a12963cf50370586810139d83a4eeb43bb Mon Sep 17 00:00:00 2001 From: juancwu Date: Fri, 3 Apr 2026 17:53:23 +0000 Subject: [PATCH] feat: add migration to recreate spaces table --- .../00022_recreate_space_tables.sql | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 internal/db/migrations/00022_recreate_space_tables.sql diff --git a/internal/db/migrations/00022_recreate_space_tables.sql b/internal/db/migrations/00022_recreate_space_tables.sql new file mode 100644 index 0000000..4514608 --- /dev/null +++ b/internal/db/migrations/00022_recreate_space_tables.sql @@ -0,0 +1,38 @@ +-- +goose Up +-- +goose StatementBegin +CREATE TABLE IF NOT EXISTS spaces ( + id TEXT PRIMARY KEY NOT NULL, + name TEXT NOT NULL, + owner_id TEXT NOT NULL, + created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (owner_id) REFERENCES users(id) ON DELETE CASCADE +); + +CREATE TABLE IF NOT EXISTS space_members ( + space_id TEXT NOT NULL, + user_id TEXT NOT NULL, + role TEXT NOT NULL CHECK (role IN ('owner', 'member')), + joined_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY (space_id, user_id), + FOREIGN KEY (space_id) REFERENCES spaces(id) ON DELETE CASCADE, + FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE +); + +CREATE TABLE IF NOT EXISTS space_invitations ( + token TEXT PRIMARY KEY NOT NULL, + space_id TEXT NOT NULL, + inviter_id TEXT NOT NULL, + invitee_email TEXT NOT NULL, + expires_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (space_id) REFERENCES spaces(id) ON DELETE CASCADE, + FOREIGN KEY (inviter_id) REFERENCES users(id) ON DELETE CASCADE +); +-- +goose StatementEnd + +-- +goose Down +-- +goose StatementBegin +DROP TABLE space_invitations; +DROP TABLE space_members; +DROP TABLE spaces; +-- +goose StatementEnd