# RelSpec > Database Relations Specification Tool for Go RelSpec is a comprehensive database relations management tool that reads, transforms, and writes database table specifications across multiple formats and ORMs. ## Overview RelSpec provides bidirectional conversion and comparison between various database specification formats, allowing you to: - Inspect live databases and extract their structure - Convert between different ORM models (GORM, Bun , etc.) - Transform legacy schema definitions (Clarion DCTX, XML, JSON, etc.) - Generate standardized specification files (JSON, YAML, etc.) ![1.00](./assets/image/relspec1_512.jpg) ## Features ### Input Formats - **XML** - Generic XML schema definitions - **JSON** - JSON-based schema specifications - **Clarion DCTX** - Clarion database dictionary format - **Database Inspection** - Direct database introspection - **GORM Models** - Read existing GORM Go structs - **Bun Models** - Read existing Bun Go structs ### Output Formats - **GORM Models** - Generate GORM-compatible Go structs - **Bun Models** - Generate Bun-compatible Go structs - **JSON** - Standard JSON schema output - **YAML** - Human-readable YAML format ## Installation ```bash go get github.com/wdevs/relspecgo go install -v git.warky.dev/wdevs/relspecgo/cmd/relspec@latest ``` ## Usage ```bash # Inspect database and generate GORM models relspec --input db --conn "postgres://..." --output gorm --out-file models.go # Convert GORM models to Bun relspec --input gorm --in-file existing.go --output bun --out-file bun_models.go # Export database schema to JSON relspec --input db --conn "mysql://..." --output json --out-file schema.json # Convert Clarion DCTX to YAML relspec --input dctx --in-file legacy.dctx --output yaml --out-file schema.yaml ``` ## Project Structure ``` relspecgo/ ├── cmd/ # CLI application ├── pkg/ │ ├── readers/ # Input format readers │ ├── writers/ # Output format writers │ ├── models/ # Internal data models │ └── transform/ # Transformation logic ├── examples/ # Usage examples └── tests/ # Test files ``` ## Todo [Todo List of Features](./TODO.md) ## Development ### Prerequisites - Go 1.21 or higher - Access to test databases (optional) ### Building ```bash go build -o relspec ./cmd/relspec ``` ### Testing ```bash go test ./... ``` ## License Apache License 2.0 - See [LICENSE](LICENSE) for details. Copyright 2025 wdevs ## Contributing Contributions welcome. Please open an issue or submit a pull request.