Skip to content

Commit c87fa90

Browse files
committed
fix: sort fk constraints before appending
1 parent a76da0d commit c87fa90

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

query_table_create.go

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55
"context"
66
"database/sql"
77
"fmt"
8+
"slices"
89
"sort"
910
"strconv"
1011
"strings"
@@ -308,8 +309,16 @@ func (q *CreateTableQuery) appendUniqueConstraint(
308309

309310
// appendFKConstraintsRel appends a FOREIGN KEY clause for each of the model's existing relations.
310311
func (q *CreateTableQuery) appendFKConstraintsRel(fmter schema.Formatter, b []byte) (_ []byte, err error) {
311-
for _, rel := range q.tableModel.Table().Relations {
312-
if rel.References() {
312+
relations := q.tableModel.Table().Relations
313+
314+
keys := make([]string, 0, len(relations))
315+
for key := range relations {
316+
keys = append(keys, key)
317+
}
318+
slices.Sort(keys)
319+
320+
for _, key := range keys {
321+
if rel := relations[key]; rel.References() {
313322
b, err = q.appendFK(fmter, b, schema.QueryWithArgs{
314323
Query: "(?) REFERENCES ? (?) ? ?",
315324
Args: []interface{}{

0 commit comments

Comments
 (0)