@@ -10,7 +10,6 @@ import (
1010"os/exec"
1111"path/filepath"
1212"regexp"
13- "strconv"
1413"strings"
1514"testing"
1615"time"
@@ -197,7 +196,7 @@ func DumpOnFailure(t testing.TB, connectionURL string) {
197196}
198197cwd ,err := filepath .Abs ("." )
199198if err != nil {
200- t .Errorf ("dump on failure:cannot determine current working directory" )
199+ t .Errorf ("dump on failure:failed to run pg_dump: %s" , err . Error () )
201200return
202201}
203202snakeCaseName := regexp .MustCompile ("[^a-zA-Z0-9-_]+" ).ReplaceAllString (t .Name (),"_" )
@@ -206,7 +205,7 @@ func DumpOnFailure(t testing.TB, connectionURL string) {
206205outPath := filepath .Join (cwd ,snakeCaseName + "." + timeSuffix + ".test.sql" )
207206dump ,err := PGDump (connectionURL )
208207if err != nil {
209- t .Errorf ("dump on failure: failed to run pg_dump: %s" , err . Error () )
208+ t .Errorf ("dump on failure: failed to run pg_dump" )
210209return
211210}
212211if err := os .WriteFile (outPath ,normalizeDump (dump ),0o600 );err != nil {
@@ -251,26 +250,28 @@ func PGDump(dbURL string) ([]byte, error) {
251250return stdout .Bytes (),nil
252251}
253252
254- const minimumPostgreSQLVersion = 13
253+ const postgresImageSha = "sha256:467e7f2fb97b2f29d616e0be1d02218a7bbdfb94eb3cda7461fd80165edfd1f7"
255254
256255// PGDumpSchemaOnly is for use by gen/dump only.
257256// It runs pg_dump against dbURL and sets a consistent timezone and encoding.
258257func PGDumpSchemaOnly (dbURL string ) ([]byte ,error ) {
259258hasPGDump := false
260- if _ ,err := exec .LookPath ("pg_dump" );err == nil {
261- out ,err := exec .Command ("pg_dump" ,"--version" ).Output ()
262- if err == nil {
263- // Parse output:
264- // pg_dump (PostgreSQL) 14.5 (Ubuntu 14.5-0ubuntu0.22.04.1)
265- parts := strings .Split (string (out )," " )
266- if len (parts )> 2 {
267- version ,err := strconv .Atoi (strings .Split (parts [2 ],"." )[0 ])
268- if err == nil && version >= minimumPostgreSQLVersion {
269- hasPGDump = true
270- }
271- }
272- }
273- }
259+ // TODO: Temporarily pin pg_dump to the docker image until
260+ // https://github.com/sqlc-dev/sqlc/issues/4065 is resolved.
261+ // if _, err := exec.LookPath("pg_dump"); err == nil {
262+ // out, err := exec.Command("pg_dump", "--version").Output()
263+ // if err == nil {
264+ // // Parse output:
265+ // // pg_dump (PostgreSQL) 14.5 (Ubuntu 14.5-0ubuntu0.22.04.1)
266+ // parts := strings.Split(string(out), " ")
267+ // if len(parts) > 2 {
268+ // version, err := strconv.Atoi(strings.Split(parts[2], ".")[0])
269+ // if err == nil && version >= minimumPostgreSQLVersion {
270+ // hasPGDump = true
271+ // }
272+ // }
273+ // }
274+ // }
274275
275276cmdArgs := []string {
276277"pg_dump" ,
@@ -295,7 +296,7 @@ func PGDumpSchemaOnly(dbURL string) ([]byte, error) {
295296"run" ,
296297"--rm" ,
297298"--network=host" ,
298- fmt .Sprintf ("%s: %d" ,postgresImage ,minimumPostgreSQLVersion ),
299+ fmt .Sprintf ("%s@ %d" ,postgresImage ,postgresImageSha ),
299300},cmdArgs ... )
300301}
301302cmd := exec .Command (cmdArgs [0 ],cmdArgs [1 :]... )//#nosec