ListExtColumns introspects existing columns via PRAGMA (SQLite) or
information_schema (Postgres). MigrateExtTables diffs manifest db_tables
against existing schema: creates new tables, adds new columns via ALTER
TABLE, applies indexes idempotently. No destructive changes — columns
present in DB but absent from manifest are preserved.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>