1. pkg/models/models.go:184 - Fixed typo in ForeignKeyConstraint constant from "foreign_Key" to "foreign_key" 2. pkg/readers/drawdb/reader.go:62-68 - Fixed ReadSchema() to properly detect schema name from tables instead of hardcoding "default" 3. pkg/writers/dbml/writer.go:128 - Changed primary key attribute from "primary key" to DBML standard "pk" 4. pkg/writers/dbml/writer.go:208-221 - Fixed foreign key reference format to use "table.column" syntax for single columns instead of "table.(column)" Test Results All reader and writer tests are now passing: Readers: - DBML: 74.4% coverage (2 tests skipped due to missing parser features for Ref statements) - DCTX: 77.6% coverage - DrawDB: 83.6% coverage - JSON: 82.1% coverage - YAML: 82.1% coverage Writers: - Bun: 68.5% coverage - DBML: 91.5% coverage - DCTX: 100.0% coverage - DrawDB: 83.8% coverage - GORM: 69.2% coverage - JSON: 82.4% coverage - YAML: 82.4% coverage
98 lines
2.4 KiB
YAML
98 lines
2.4 KiB
YAML
name: test_db
|
|
description: Test database for YAML reader
|
|
database_type: pgsql
|
|
schemas:
|
|
- name: public
|
|
tables:
|
|
- name: users
|
|
schema: public
|
|
description: User accounts table
|
|
columns:
|
|
id:
|
|
name: id
|
|
table: users
|
|
schema: public
|
|
type: bigint
|
|
not_null: true
|
|
auto_increment: true
|
|
is_primary_key: true
|
|
email:
|
|
name: email
|
|
table: users
|
|
schema: public
|
|
type: varchar
|
|
length: 255
|
|
not_null: true
|
|
comment: User email address
|
|
name:
|
|
name: name
|
|
table: users
|
|
schema: public
|
|
type: varchar
|
|
length: 100
|
|
not_null: false
|
|
created_at:
|
|
name: created_at
|
|
table: users
|
|
schema: public
|
|
type: timestamp
|
|
not_null: true
|
|
default: CURRENT_TIMESTAMP
|
|
indexes:
|
|
idx_users_email:
|
|
name: idx_users_email
|
|
table: users
|
|
schema: public
|
|
columns:
|
|
- email
|
|
unique: true
|
|
type: btree
|
|
constraints: {}
|
|
relationships: {}
|
|
- name: posts
|
|
schema: public
|
|
columns:
|
|
id:
|
|
name: id
|
|
table: posts
|
|
schema: public
|
|
type: bigint
|
|
not_null: true
|
|
auto_increment: true
|
|
is_primary_key: true
|
|
user_id:
|
|
name: user_id
|
|
table: posts
|
|
schema: public
|
|
type: bigint
|
|
not_null: true
|
|
title:
|
|
name: title
|
|
table: posts
|
|
schema: public
|
|
type: varchar
|
|
length: 200
|
|
not_null: true
|
|
content:
|
|
name: content
|
|
table: posts
|
|
schema: public
|
|
type: text
|
|
not_null: false
|
|
indexes: {}
|
|
constraints:
|
|
fk_posts_user:
|
|
name: fk_posts_user
|
|
type: foreign_key
|
|
table: posts
|
|
schema: public
|
|
columns:
|
|
- user_id
|
|
referenced_table: users
|
|
referenced_schema: public
|
|
referenced_columns:
|
|
- id
|
|
on_delete: CASCADE
|
|
on_update: CASCADE
|
|
relationships: {}
|