Skip to content

Commit

Permalink
Testing: Update postgres sequences (#9304)
Browse files Browse the repository at this point in the history
  • Loading branch information
zeripath authored Dec 10, 2019
1 parent 2d8a895 commit d3a9c4c
Showing 1 changed file with 32 additions and 0 deletions.
32 changes: 32 additions & 0 deletions models/test_fixtures.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,5 +35,37 @@ func LoadFixtures() error {
if err != nil {
fmt.Printf("LoadFixtures failed after retries: %v\n", err)
}
// Now if we're running postgres we need to tell it to update the sequences
if x.Dialect().DriverName() == "postgres" {
results, err := x.QueryString(`SELECT 'SELECT SETVAL(' ||
quote_literal(quote_ident(PGT.schemaname) || '.' || quote_ident(S.relname)) ||
', COALESCE(MAX(' ||quote_ident(C.attname)|| '), 1) ) FROM ' ||
quote_ident(PGT.schemaname)|| '.'||quote_ident(T.relname)|| ';'
FROM pg_class AS S,
pg_depend AS D,
pg_class AS T,
pg_attribute AS C,
pg_tables AS PGT
WHERE S.relkind = 'S'
AND S.oid = D.objid
AND D.refobjid = T.oid
AND D.refobjid = C.attrelid
AND D.refobjsubid = C.attnum
AND T.relname = PGT.tablename
ORDER BY S.relname;`)
if err != nil {
fmt.Printf("Failed to generate sequence update: %v\n", err)
return err
}
for _, r := range results {
for _, value := range r {
_, err = x.Exec(value)
if err != nil {
fmt.Printf("Failed to update sequence: %s Error: %v\n", value, err)
return err
}
}
}
}
return err
}

0 comments on commit d3a9c4c

Please sign in to comment.