generateForeignKeyConstraints generates the ForeignKeyConstraint enum.
()
| 175 | |
| 176 | // generateForeignKeyConstraints generates the ForeignKeyConstraint enum. |
| 177 | func generateForeignKeyConstraints() error { |
| 178 | localPath, err := localFilePath() |
| 179 | if err != nil { |
| 180 | return err |
| 181 | } |
| 182 | databasePath := filepath.Join(localPath, "..", "..", "..", "coderd", "database") |
| 183 | dumpPath := filepath.Join(databasePath, "dump.sql") |
| 184 | outputPath := filepath.Join(databasePath, "foreign_key_constraint.go") |
| 185 | |
| 186 | fn := func(query string) ([]constraint, error) { |
| 187 | if strings.Contains(query, "FOREIGN KEY") { |
| 188 | name := "" |
| 189 | switch { |
| 190 | case strings.Contains(query, "ALTER TABLE") && strings.Contains(query, "ADD CONSTRAINT"): |
| 191 | name = strings.Split(query, " ")[6] |
| 192 | default: |
| 193 | return nil, xerrors.Errorf("unknown foreign key constraint format: %s", query) |
| 194 | } |
| 195 | return []constraint{ |
| 196 | { |
| 197 | name: name, |
| 198 | comment: query, |
| 199 | }, |
| 200 | }, nil |
| 201 | } |
| 202 | return []constraint{}, nil |
| 203 | } |
| 204 | return generateConstraints(dumpPath, outputPath, constraintTypeForeignKey, fn) |
| 205 | } |
| 206 | |
| 207 | // generateCheckConstraints generates the CheckConstraint enum. |
| 208 | func generateCheckConstraints() error { |
no test coverage detected