3.1 KiB
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
- 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