Commit 0453759
feat(detector/sql): port SqlMigrationDetector
Mirrors Java SqlMigrationDetector. Extracts schema entities (tables, views,
schemas) from:
- Raw SQL DDL (CREATE TABLE/VIEW/SCHEMA, ALTER ADD COLUMN, CREATE INDEX, FK)
- Flyway: V{version}__name.sql files (parses version)
- Prisma: migrations/{version}/migration.sql (version = parent dir)
- Alembic: versions/*.py (with from-alembic marker guard)
- Rails: db/migrate/{timestamp}_*.rb (parses version)
- Liquibase: changelog.{xml,yml} (regex-based XML/YAML extraction)
Emits SQL_ENTITY + MIGRATION nodes, REFERENCES_TABLE + MIGRATES edges.
Bare .sql files (not in a migration directory) emit SQL_ENTITY only
(no MIGRATION node) — matches Java behavior.
RE2 rewrite of Java's possessive-quantifier-heavy patterns: plain *
suffices since RE2 doesn't backtrack catastrophically. Liquibase YAML
intermediate-line lookahead approximated with bounded-quantifier window.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>1 parent 31fc86d commit 0453759
2 files changed
Lines changed: 531 additions & 0 deletions
0 commit comments