generateUniqueConstraints generates the UniqueConstraint enum.
()
| 142 | |
| 143 | // generateUniqueConstraints generates the UniqueConstraint enum. |
| 144 | func generateUniqueConstraints() error { |
| 145 | localPath, err := localFilePath() |
| 146 | if err != nil { |
| 147 | return err |
| 148 | } |
| 149 | databasePath := filepath.Join(localPath, "..", "..", "..", "coderd", "database") |
| 150 | dumpPath := filepath.Join(databasePath, "dump.sql") |
| 151 | outputPath := filepath.Join(databasePath, "unique_constraint.go") |
| 152 | |
| 153 | fn := func(query string) ([]constraint, error) { |
| 154 | if strings.Contains(query, "UNIQUE") || strings.Contains(query, "PRIMARY KEY") { |
| 155 | name := "" |
| 156 | switch { |
| 157 | case strings.Contains(query, "ALTER TABLE") && strings.Contains(query, "ADD CONSTRAINT"): |
| 158 | name = strings.Split(query, " ")[6] |
| 159 | case strings.Contains(query, "CREATE UNIQUE INDEX"): |
| 160 | name = strings.Split(query, " ")[3] |
| 161 | default: |
| 162 | return nil, xerrors.Errorf("unknown unique constraint format: %s", query) |
| 163 | } |
| 164 | return []constraint{ |
| 165 | { |
| 166 | name: name, |
| 167 | comment: query, |
| 168 | }, |
| 169 | }, nil |
| 170 | } |
| 171 | return nil, nil |
| 172 | } |
| 173 | return generateConstraints(dumpPath, outputPath, constraintTypeUnique, fn) |
| 174 | } |
| 175 | |
| 176 | // generateForeignKeyConstraints generates the ForeignKeyConstraint enum. |
| 177 | func generateForeignKeyConstraints() error { |
no test coverage detected