Files
relspecgo/pkg/readers/dctx
Hein 666eab7cec
Some checks failed
CI / Test (1.24) (push) Failing after -24m41s
CI / Test (1.25) (push) Failing after -24m25s
CI / Lint (push) Failing after -25m49s
CI / Build (push) Successful in -26m3s
Updated Readme files
2025-12-28 10:34:20 +02:00
..
2025-12-17 22:52:24 +02:00
2025-12-17 22:52:24 +02:00
2025-12-28 10:34:20 +02:00

DCTX Reader

Reads Clarion database dictionary (DCTX) files and extracts database schema information.

Overview

The DCTX Reader parses Clarion dictionary files (.dctx) that define database structures in the Clarion development system and converts them into RelSpec's internal database model representation.

Features

  • Parses Clarion DCTX XML format
  • Extracts file (table) and field (column) definitions
  • Supports Clarion data types
  • Handles keys (indexes) and relationships

Usage

Basic Example

package main

import (
    "fmt"
    "git.warky.dev/wdevs/relspecgo/pkg/readers"
    "git.warky.dev/wdevs/relspecgo/pkg/readers/dctx"
)

func main() {
    options := &readers.ReaderOptions{
        FilePath: "/path/to/database.dctx",
    }

    reader := dctx.NewReader(options)
    db, err := reader.ReadDatabase()
    if err != nil {
        panic(err)
    }

    fmt.Printf("Found %d schemas\n", len(db.Schemas))
}

CLI Example

# Read DCTX file and convert to JSON
relspec --input dctx --in-file legacy.dctx --output json --out-file schema.json

# Convert DCTX to GORM models for migration
relspec --input dctx --in-file app.dctx --output gorm --out-file models.go

# Export DCTX to PostgreSQL DDL
relspec --input dctx --in-file database.dctx --output pgsql --out-file schema.sql

Example DCTX Structure

DCTX files are XML-based Clarion dictionary files that define:

  • Files (equivalent to tables)
  • Fields (columns) with Clarion-specific types
  • Keys (indexes)
  • Relationships between files

Common Clarion data types:

  • STRING - Fixed-length string
  • CSTRING - C-style null-terminated string
  • LONG - 32-bit integer
  • SHORT - 16-bit integer
  • DECIMAL - Decimal number
  • REAL - Floating point
  • DATE - Date field
  • TIME - Time field

Type Mapping

The reader automatically maps Clarion data types to standard SQL types:

Clarion Type SQL Type
STRING VARCHAR
CSTRING VARCHAR
LONG INTEGER
SHORT SMALLINT
DECIMAL NUMERIC
REAL REAL
DATE DATE
TIME TIME

Notes

  • DCTX is specific to Clarion development platform
  • Useful for migrating legacy Clarion applications
  • Schema name defaults to public
  • Preserves field properties and constraints where possible