veza/veza-backend-api/migrations/051_migrate_messages_to_uuid.sql
2025-12-03 20:29:37 +01:00

24 lines
960 B
SQL

-- Migration to convert messages table to use UUIDs for ID, RoomID, ParentID
-- We will recreate the table to ensure clean state
DROP TABLE IF EXISTS messages;
CREATE TABLE messages (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
room_id UUID NOT NULL REFERENCES rooms(id) ON DELETE CASCADE,
user_id UUID NOT NULL REFERENCES users(id) ON DELETE CASCADE,
content TEXT NOT NULL,
type VARCHAR(50) NOT NULL DEFAULT 'text',
parent_id UUID REFERENCES messages(id) ON DELETE SET NULL,
is_edited BOOLEAN DEFAULT false,
is_deleted BOOLEAN DEFAULT false,
created_at TIMESTAMPTZ DEFAULT NOW(),
updated_at TIMESTAMPTZ DEFAULT NOW(),
deleted_at TIMESTAMPTZ
);
CREATE INDEX idx_messages_room_id_created_at ON messages(room_id, created_at DESC);
CREATE INDEX idx_messages_sender_id ON messages(user_id);
CREATE INDEX idx_messages_parent_id ON messages(parent_id);
CREATE INDEX idx_messages_deleted_at ON messages(deleted_at);