- Implement functionality to create, update, delete, and view relationships between tables. - Introduce new UI screens for managing relationships, including forms for adding and editing relationships. - Enhance table editor with navigation to relationship management. - Ensure relationships are displayed in a structured table format for better usability.
54 lines
1.9 KiB
Go
54 lines
1.9 KiB
Go
// Package readers provides interfaces and implementations for reading database schemas
|
|
// from various input formats and data sources.
|
|
//
|
|
// # Overview
|
|
//
|
|
// The readers package defines a common Reader interface that all format-specific readers
|
|
// implement. This allows RelSpec to read database schemas from multiple sources including:
|
|
// - Live databases (PostgreSQL, SQLite)
|
|
// - Schema definition files (DBML, DCTX, DrawDB, GraphQL)
|
|
// - ORM model files (GORM, Bun, Drizzle, Prisma, TypeORM)
|
|
// - Data interchange formats (JSON, YAML)
|
|
//
|
|
// # Architecture
|
|
//
|
|
// Each reader implementation is located in its own subpackage (e.g., pkg/readers/dbml,
|
|
// pkg/readers/pgsql) and implements the Reader interface, supporting three levels of
|
|
// granularity:
|
|
// - ReadDatabase() - Read complete database with all schemas
|
|
// - ReadSchema() - Read single schema with all tables
|
|
// - ReadTable() - Read single table with all columns and metadata
|
|
//
|
|
// # Usage
|
|
//
|
|
// Readers are instantiated with ReaderOptions containing source-specific configuration:
|
|
//
|
|
// // Read from file
|
|
// reader := dbml.NewReader(&readers.ReaderOptions{
|
|
// FilePath: "schema.dbml",
|
|
// })
|
|
// db, err := reader.ReadDatabase()
|
|
//
|
|
// // Read from database
|
|
// reader := pgsql.NewReader(&readers.ReaderOptions{
|
|
// ConnectionString: "postgres://user:pass@localhost/mydb",
|
|
// })
|
|
// db, err := reader.ReadDatabase()
|
|
//
|
|
// # Supported Formats
|
|
//
|
|
// - dbml: Database Markup Language files
|
|
// - dctx: DCTX schema files
|
|
// - drawdb: DrawDB JSON format
|
|
// - graphql: GraphQL schema definition language
|
|
// - json: JSON database schema
|
|
// - yaml: YAML database schema
|
|
// - gorm: Go GORM model structs
|
|
// - bun: Go Bun model structs
|
|
// - drizzle: TypeScript Drizzle ORM schemas
|
|
// - prisma: Prisma schema language
|
|
// - typeorm: TypeScript TypeORM entities
|
|
// - pgsql: PostgreSQL live database introspection
|
|
// - sqlite: SQLite database files
|
|
package readers
|