| 90 | } |
| 91 | |
| 92 | func (c *Config) validateGlobalOverrides() error { |
| 93 | engines := map[Engine]struct{}{} |
| 94 | for _, pkg := range c.SQL { |
| 95 | if _, ok := engines[pkg.Engine]; !ok { |
| 96 | engines[pkg.Engine] = struct{}{} |
| 97 | } |
| 98 | } |
| 99 | if c.Overrides.Go == nil { |
| 100 | return nil |
| 101 | } |
| 102 | usesMultipleEngines := len(engines) > 1 |
| 103 | for _, oride := range c.Overrides.Go.Overrides { |
| 104 | if usesMultipleEngines && oride.Engine == "" { |
| 105 | return fmt.Errorf(`the "engine" field is required for global type overrides because your configuration uses multiple database engines`) |
| 106 | } |
| 107 | } |
| 108 | return nil |
| 109 | } |