tasko/backend/fix_tables.sql
2025-12-10 19:45:05 +02:00

38 lines
1.3 KiB
SQL

-- Create missing tables
CREATE TABLE task_lists (
id VARCHAR(36) PRIMARY KEY,
user_id VARCHAR(36) NOT NULL,
name VARCHAR(200) NOT NULL,
icon VARCHAR(10) DEFAULT 'list',
color VARCHAR(7) DEFAULT '#667eea',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
);
CREATE TABLE tasks (
id VARCHAR(36) PRIMARY KEY,
list_id VARCHAR(36) NOT NULL,
user_id VARCHAR(36) NOT NULL,
title VARCHAR(500) NOT NULL,
description TEXT,
completed BOOLEAN DEFAULT FALSE NOT NULL,
priority VARCHAR(20) DEFAULT 'medium',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,
FOREIGN KEY (list_id) REFERENCES task_lists(id) ON DELETE CASCADE,
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
);
-- Create indexes
CREATE INDEX idx_task_lists_user_id ON task_lists(user_id);
CREATE INDEX idx_tasks_list_id ON tasks(list_id);
CREATE INDEX idx_tasks_user_id ON tasks(user_id);
CREATE INDEX idx_tasks_completed ON tasks(completed);
-- Grant permissions to tasko_user
GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO tasko_user;
GRANT USAGE, SELECT ON ALL SEQUENCES IN SCHEMA public TO tasko_user;
-- Show tables
\dt