Skip to content

Commit a2635d9

Browse files
committed
Fix
1 parent e72bcb9 commit a2635d9

File tree

9 files changed

+205
-179
lines changed

9 files changed

+205
-179
lines changed

config/config.go

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -441,9 +441,6 @@ func (c *Config) ModifySchema(s *schema.Schema) error {
441441

442442
// set Viewpoints
443443
// viewpoints should be created using as complete a schema as possible
444-
tables := lo.Map(s.Tables, func(t *schema.Table, _ int) string {
445-
return t.Name
446-
})
447444
for _, v := range c.Viewpoints {
448445
cs, err := s.CloneWithoutViewpoints()
449446
if err != nil {
@@ -456,14 +453,31 @@ func (c *Config) ModifySchema(s *schema.Schema) error {
456453
}); err != nil {
457454
return err
458455
}
459-
groups := make([]*schema.ViewpointGroup, len(v.Groups))
456+
groups := []*schema.ViewpointGroup{}
457+
tables := lo.Map(cs.Tables, func(t *schema.Table, _ int) string {
458+
return t.Name
459+
})
460460
for _, g := range v.Groups {
461+
gt, _, err := cs.SepareteTablesThatAreIncludedOrNot(&schema.FilterOption{
462+
Include: g.Tables,
463+
IncludeLabels: g.Labels,
464+
})
465+
if err != nil {
466+
return err
467+
}
461468
groups = append(groups, &schema.ViewpointGroup{
462469
Name: g.Name,
463470
Desc: g.Desc,
464471
Tables: g.Tables,
465472
Labels: g.Labels,
466473
})
474+
left, right := lo.Difference(tables, lo.Map(gt, func(t *schema.Table, _ int) string {
475+
return t.Name
476+
}))
477+
if len(right) > 0 {
478+
return fmt.Errorf("viewpoint group '%s' has duplicate tables %v", g.Name, right)
479+
}
480+
tables = left
467481
}
468482
s.Viewpoints = s.Viewpoints.Merge(&schema.Viewpoint{
469483
Name: v.Name,
@@ -474,14 +488,6 @@ func (c *Config) ModifySchema(s *schema.Schema) error {
474488
Groups: groups,
475489
Schema: cs,
476490
})
477-
vts := lo.Map(cs.Tables, func(t *schema.Table, _ int) string {
478-
return t.Name
479-
})
480-
left, right := lo.Difference(tables, vts)
481-
if len(right) > 0 {
482-
return fmt.Errorf("viewpoint '%s' has duplicate tables %v", v.Name, right)
483-
}
484-
tables = left
485491
}
486492
for _, v := range s.Viewpoints {
487493
L:

output/dot/dot.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ func (d *Dot) OutputViewpoint(wr io.Writer, v *schema.Viewpoint) error {
9191
IncludeLabels: g.Labels,
9292
})
9393
if err != nil {
94-
return err
94+
return errors.WithStack(err)
9595
}
9696
d := map[string]interface{}{
9797
"Name": g.Name,

sample/viewpoints/schema.json

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

sample/viewpoints/viewpoint-0.svg

Lines changed: 2 additions & 2 deletions
Loading

sample/viewpoints/viewpoint-1.svg

Lines changed: 2 additions & 2 deletions
Loading

sample/viewpoints/viewpoint-2.md

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,21 @@ Tables related to the users table
66

77
## Tables
88

9+
### Content
10+
11+
Content as an asset for blogging services
12+
913
| Name | Columns | Comment | Type | Labels |
1014
| ---- | ------- | ------- | ---- | ------ |
1115
| [comment_stars](comment_stars.md) | 6 | | BASE TABLE | `content` |
1216
| [comments](comments.md) | 7 | Comments<br>Multi-line<br>table<br>comment | BASE TABLE | `content` |
13-
| [logs](logs.md) | 7 | Auditログ | BASE TABLE | |
1417
| [posts](posts.md) | 7 | Posts table | BASE TABLE | `content` |
18+
19+
### -
20+
21+
| Name | Columns | Comment | Type | Labels |
22+
| ---- | ------- | ------- | ---- | ------ |
23+
| [logs](logs.md) | 7 | Auditログ | BASE TABLE | |
1524
| [user_options](user_options.md) | 4 | User options table | BASE TABLE | `user` |
1625
| [users](users.md) | 6 | Users table | BASE TABLE | `user` |
1726

sample/viewpoints/viewpoint-2.svg

Lines changed: 163 additions & 158 deletions
Loading

sample/viewpoints/viewpoint-3.svg

Lines changed: 2 additions & 2 deletions
Loading

testdata/test_tbls_viewpoints.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,12 @@ viewpoints:
3232
tables:
3333
- users
3434
distance: 1
35+
groups:
36+
-
37+
name: Content
38+
desc: Content as an asset for blogging services
39+
labels:
40+
- content
3541
-
3642
name: Secure data
3743
desc: Tables with secure data

0 commit comments

Comments
 (0)