Database migration for projects.
This commit is contained in:
parent
dfcf56aa4d
commit
4895f7c4b7
2 changed files with 56 additions and 0 deletions
17
backend/migrations/20251023043152_create_projects.down.sql
Normal file
17
backend/migrations/20251023043152_create_projects.down.sql
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
ALTER TABLE tasks RENAME TO tasks_old;
|
||||
|
||||
CREATE TABLE tasks (
|
||||
id UUID PRIMARY KEY NOT NULL,
|
||||
title VARCHAR NOT NULL,
|
||||
description TEXT,
|
||||
status TEXT CHECK(status IN ('todo', 'done', 'backlog')) DEFAULT 'todo',
|
||||
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
completed_at TIMESTAMP
|
||||
);
|
||||
|
||||
INSERT INTO tasks SELECT id, title, description, status, created_at, updated_at, completed_at FROM tasks_old;
|
||||
|
||||
DROP TABLE tasks_old;
|
||||
DROP TABLE projects;
|
||||
DROP TABLE folders;
|
||||
39
backend/migrations/20251023043152_create_projects.up.sql
Normal file
39
backend/migrations/20251023043152_create_projects.up.sql
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
CREATE TABLE folders (
|
||||
id UUID PRIMARY KEY NOT NULL,
|
||||
title VARCHAR NOT NULL,
|
||||
sort_order INTEGER NOT NULL UNIQUE,
|
||||
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
CREATE TABLE projects (
|
||||
id UUID PRIMARY KEY NOT NULL,
|
||||
title VARCHAR NOT NULL,
|
||||
color VARCHAR(7) NOT NULL, -- hex code
|
||||
folder_id UUID,
|
||||
sort_order INTEGER NOT NULL UNIQUE,
|
||||
status TEXT CHECK(status IN ('active', 'done', 'backlog')) DEFAULT 'active',
|
||||
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
completed_at TIMESTAMP,
|
||||
FOREIGN KEY(folder_id) REFERENCES folders(id)
|
||||
);
|
||||
|
||||
ALTER TABLE tasks RENAME TO tasks_old;
|
||||
|
||||
-- Add up migration script here
|
||||
CREATE TABLE tasks (
|
||||
id UUID PRIMARY KEY NOT NULL,
|
||||
title VARCHAR NOT NULL,
|
||||
description TEXT,
|
||||
status TEXT CHECK(status IN ('todo', 'done', 'backlog')) DEFAULT 'todo',
|
||||
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
completed_at TIMESTAMP,
|
||||
project_id UUID,
|
||||
FOREIGN KEY(project_id) REFERENCES projects(id)
|
||||
);
|
||||
|
||||
INSERT INTO tasks SELECT *, NULL as project_id FROM tasks_old;
|
||||
|
||||
DROP TABLE tasks_old;
|
||||
Loading…
Add table
Add a link
Reference in a new issue