Files
relspecgo/README.md
Hein ef5e9bccd0
Some checks failed
CI / Test (1.23) (push) Failing after -26m26s
CI / Test (1.24) (push) Failing after -26m55s
CI / Test (1.25) (push) Failing after -26m40s
CI / Lint (push) Failing after -26m30s
CI / Build (push) Failing after -26m57s
Todo Updates
2025-12-18 21:39:37 +02:00

2.6 KiB

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

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

go get github.com/wdevs/relspecgo

go install -v git.warky.dev/wdevs/relspecgo/cmd/relspec@latest

Usage

# 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

Development

Prerequisites

  • Go 1.21 or higher
  • Access to test databases (optional)

Building

go build -o relspec ./cmd/relspec

Testing

go test ./...

License

Apache License 2.0 - See LICENSE for details.

Copyright 2025 wdevs

Contributing

Contributions welcome. Please open an issue or submit a pull request.