# 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 - [ ] NSIS Windows installer - [ ] Check https://git.warky.dev/wdevs/relspecgo/releases for new releases and prompt to update - [ ] CI pipeline to build and publish the Windows installer ## 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