-- One-time upgrade of the live reasonix-crash DB to the account system. -- Apply once: wrangler d1 execute reasonix-crash --remote --file=migrate.sql -- The ALTERs are not idempotent; the CREATEs are. Fresh installs use schema.sql. ALTER TABLE groups ADD COLUMN status TEXT NOT NULL DEFAULT 'open'; ALTER TABLE groups ADD COLUMN note TEXT NOT NULL DEFAULT ''; CREATE TABLE IF NOT EXISTS users ( id INTEGER PRIMARY KEY AUTOINCREMENT, email TEXT NOT NULL UNIQUE, password_hash TEXT NOT NULL, role TEXT NOT NULL DEFAULT 'pending', created_at TEXT NOT NULL, approved_at TEXT, approved_by INTEGER ); CREATE TABLE IF NOT EXISTS sessions ( token TEXT PRIMARY KEY, user_id INTEGER NOT NULL, created_at TEXT NOT NULL, expires_at TEXT NOT NULL ); CREATE INDEX IF NOT EXISTS sessions_user ON sessions (user_id); CREATE TABLE IF NOT EXISTS audit_log ( id INTEGER PRIMARY KEY AUTOINCREMENT, at TEXT NOT NULL, actor_id INTEGER, actor_email TEXT NOT NULL, action TEXT NOT NULL, target TEXT NOT NULL DEFAULT '', detail TEXT NOT NULL DEFAULT '' );