-- This migration extracts "remind days ahead" into a separate table so that a chat can configure mutiple reminders CREATE TABLE reminder ( id INTEGER PRIMARY KEY NOT NULL, chat_id INTEGER NOT NULL REFERENCES chat (id) ON DELETE CASCADE, days_ahead BIGINT NOT NULL ); CREATE INDEX reminders_chat_id ON reminder (chat_id, days_ahead); -- Having days_ahead as index saves us from taking extra effort for sorted data INSERT INTO reminder (chat_id, days_ahead) SELECT id, remind_days_ahead FROM chat; ALTER TABLE chat DROP remind_days_ahead;