Files
relspecgo/TODO.md
T

3.1 KiB

RelSpec - TODO List

Input Readers / Writers

  • [✔️] Database Inspector
    • [✔️] PostgreSQL driver (reader + writer)
    • MySQL driver (only MariaDB datatype conversion in pkg/mariadb, no reader/writer)
    • [✔️] SQLite driver (reader + writer with automatic schema flattening)
    • [✔️] MSSQL driver (reader + writer, generated and identity columns)
    • [✔️] Foreign key detection
    • [✔️] Index extraction
    • [✔️] .sql file generation (PostgreSQL, SQLite)
  • [✔️] .dbml: Database Markup Language (DBML) for textual schema representation.
  • [✔️] Prisma schema support (PSL format) .prisma
  • Sequelize (Typescript/Javascript) (Use templates, 💲 Someone can do this, not me)
  • [✔️] Drizzle ORM support .ts (TypeScript / JavaScript) (Mr. Edd wanted to move from Prisma to Drizzle. If you are bugs, you are welcome to do pull requests or issues)
  • [☠️] Entity Framework (.NET) model .edmx (Fuck no, EDMX files were bloated, verbose XML nightmares—hard to merge, error-prone, and a pain in teams. Microsoft wisely ditched them in EF Core for code-first. Classic overkill from old MS era.)
  • [✔️] TypeORM support
  • .hbm.xml / schema.xml: Hibernate/Propel mappings (Java/PHP) (Use templates, 💲 Someone can do this, not me)
  • Django models.py (Python classes), Sequelize migrations (JS) (Use templates, 💲 Someone can do this, not me)
  • SQLAlchemy, Python (Use templates, 💲 Someone can do this, not me)
  • .avsc: Avro schema (JSON format for data serialization) (Use templates, 💲 Someone can do this, not me)
  • Rails schema in db/schema.rb (Use templates, 💲 Someone can do this, not me)
  • Laravel migration (Use templates, 💲 Someone can do this, not me)
  • Hibernate / JPA (Use templates, 💲 Someone can do this, not me)
  • [✔️] GraphQL schema generation

UI

  • [✔️] Basic UI (I went with tview)
  • [✔️] Save / Load Database
  • [✔️] Schemas / Domains / Tables
  • [✔️] Add Relations
  • Add Indexes
  • Add Views
  • Add Sequences
  • Add Scripts
  • Domain / Table Assignment

Documentation

  • [✔️] API documentation (godoc)
  • Usage examples for each format combination

Advanced Features

  • Dry-run mode for validation (only job run --dry-run; not on convert/merge/split)
  • [✔️] Diff tool for comparing specifications
  • [✔️] Migration script generation (PostgreSQL diff, live database by default for direct output)
  • Custom type mapping configuration
  • Batch processing support (partial: job files run named workflows via relspec job run)
  • Watch mode for auto-regeneration

Distribution

Future Considerations

  • Web UI for visual editing
  • REST API server mode
  • Support for NoSQL databases

Performance

  • Concurrent processing for multiple tables
  • Streaming for large databases
  • Memory optimization
  • Caching layer for repeated operations