ALTER TABLE users ADD COLUMN full_name TEXT NOT NULL DEFAULT ''; ALTER TABLE users ADD COLUMN avatar_url TEXT NOT NULL DEFAULT ''; ALTER TABLE users ADD COLUMN location TEXT NOT NULL DEFAULT ''; ALTER TABLE users ADD COLUMN website TEXT NOT NULL DEFAULT ''; CREATE TABLE IF NOT EXISTS issues ( id INTEGER PRIMARY KEY AUTOINCREMENT, repo_id INTEGER NOT NULL REFERENCES repositories(id) ON DELETE CASCADE, number INTEGER NOT NULL, author_id INTEGER NOT NULL REFERENCES users(id) ON DELETE CASCADE, title TEXT NOT NULL, body TEXT NOT NULL DEFAULT '', is_closed INTEGER NOT NULL DEFAULT 0, created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, UNIQUE(repo_id, number) ); CREATE INDEX IF NOT EXISTS idx_issues_repo_id ON issues(repo_id, is_closed, number DESC); CREATE TABLE IF NOT EXISTS issue_comments ( id INTEGER PRIMARY KEY AUTOINCREMENT, issue_id INTEGER NOT NULL REFERENCES issues(id) ON DELETE CASCADE, author_id INTEGER NOT NULL REFERENCES users(id) ON DELETE CASCADE, body TEXT NOT NULL, created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ); CREATE INDEX IF NOT EXISTS idx_issue_comments_issue_id ON issue_comments(issue_id, created_at ASC);