diff --git a/examples/ondeck/postgresql/city.sql.go b/examples/ondeck/postgresql/city.sql.go index 4a8c3a7ee2..5559bf5126 100644 --- a/examples/ondeck/postgresql/city.sql.go +++ b/examples/ondeck/postgresql/city.sql.go @@ -1,3 +1,5 @@ +//go:build examples + // Code generated by sqlc. DO NOT EDIT. // versions: // sqlc v1.31.1 diff --git a/examples/ondeck/postgresql/db.go b/examples/ondeck/postgresql/db.go index a1b2416065..57103536c9 100644 --- a/examples/ondeck/postgresql/db.go +++ b/examples/ondeck/postgresql/db.go @@ -1,3 +1,5 @@ +//go:build examples + // Code generated by sqlc. DO NOT EDIT. // versions: // sqlc v1.31.1 diff --git a/examples/ondeck/postgresql/models.go b/examples/ondeck/postgresql/models.go index 952799316f..fc861a336a 100644 --- a/examples/ondeck/postgresql/models.go +++ b/examples/ondeck/postgresql/models.go @@ -1,3 +1,5 @@ +//go:build examples + // Code generated by sqlc. DO NOT EDIT. // versions: // sqlc v1.31.1 diff --git a/examples/ondeck/postgresql/querier.go b/examples/ondeck/postgresql/querier.go index 3a765cb48f..6b602d1c06 100644 --- a/examples/ondeck/postgresql/querier.go +++ b/examples/ondeck/postgresql/querier.go @@ -1,3 +1,5 @@ +//go:build examples + // Code generated by sqlc. DO NOT EDIT. // versions: // sqlc v1.31.1 diff --git a/examples/ondeck/postgresql/venue.sql.go b/examples/ondeck/postgresql/venue.sql.go index e29064daa1..0bc6713692 100644 --- a/examples/ondeck/postgresql/venue.sql.go +++ b/examples/ondeck/postgresql/venue.sql.go @@ -1,3 +1,5 @@ +//go:build examples + // Code generated by sqlc. DO NOT EDIT. // versions: // sqlc v1.31.1 diff --git a/examples/ondeck/sqlc.json b/examples/ondeck/sqlc.json index 7b97328b3f..35f6570f1f 100644 --- a/examples/ondeck/sqlc.json +++ b/examples/ondeck/sqlc.json @@ -20,6 +20,7 @@ "rules": [ "sqlc/db-prepare" ], + "build_tags": "examples", "emit_json_tags": true, "emit_prepared_queries": true, "emit_interface": true diff --git a/internal/sqltest/mysql.go b/internal/sqltest/mysql.go index bddfe0042c..cdeb8b8b7a 100644 --- a/internal/sqltest/mysql.go +++ b/internal/sqltest/mysql.go @@ -3,15 +3,31 @@ package sqltest import ( "database/sql" "fmt" + "math/rand" "os" "path/filepath" "testing" + "time" _ "github.com/go-sql-driver/mysql" "github.com/sqlc-dev/sqlc/internal/sql/sqlpath" ) +func init() { + rand.Seed(time.Now().UnixNano()) +} + +var letterRunes = []rune("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ") + +func id() string { + b := make([]rune, 10) + for i := range b { + b[i] = letterRunes[rand.Intn(len(letterRunes))] + } + return string(b) +} + func MySQL(t *testing.T, migrations []string) (*sql.DB, func()) { // For each test, pick a new database name at random. name := "sqltest_mysql_" + id() diff --git a/internal/sqltest/postgres.go b/internal/sqltest/postgres.go deleted file mode 100644 index edf6272d41..0000000000 --- a/internal/sqltest/postgres.go +++ /dev/null @@ -1,117 +0,0 @@ -package sqltest - -import ( - "database/sql" - "fmt" - "math/rand" - "os" - "path/filepath" - "testing" - "time" - - "github.com/sqlc-dev/sqlc/internal/sql/sqlpath" - - _ "github.com/lib/pq" -) - -func init() { - rand.Seed(time.Now().UnixNano()) -} - -var letterRunes = []rune("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ") - -func id() string { - b := make([]rune, 10) - for i := range b { - b[i] = letterRunes[rand.Intn(len(letterRunes))] - } - return string(b) -} - -func PostgreSQL(t *testing.T, migrations []string) (*sql.DB, func()) { - t.Helper() - - // For each test, pick a new schema name at random. - schema := "sqltest_postgresql_" + id() - return CreatePostgreSQLDatabase(t, schema, true, migrations) -} - -func CreatePostgreSQLDatabase(t *testing.T, name string, schema bool, migrations []string) (*sql.DB, func()) { - t.Helper() - - pgUser := os.Getenv("PG_USER") - pgHost := os.Getenv("PG_HOST") - pgPort := os.Getenv("PG_PORT") - pgPass := os.Getenv("PG_PASSWORD") - pgDB := os.Getenv("PG_DATABASE") - - if pgUser == "" { - pgUser = "postgres" - } - - if pgPass == "" { - pgPass = "mysecretpassword" - } - - if pgPort == "" { - pgPort = "5432" - } - - if pgHost == "" { - pgHost = "127.0.0.1" - } - - if pgDB == "" { - pgDB = "dinotest" - } - - source := fmt.Sprintf("postgres://%s:%s@%s:%s/%s?sslmode=disable", pgUser, pgPass, pgHost, pgPort, pgDB) - t.Logf("db: %s", source) - - db, err := sql.Open("postgres", source) - if err != nil { - t.Fatal(err) - } - - // For each test, pick a new schema name at random. - var newsource, dropQuery string - if schema { - if _, err := db.Exec("CREATE SCHEMA " + name); err != nil { - t.Fatal(err) - } - newsource = source + "&search_path=" + name - dropQuery = "DROP SCHEMA " + name + " CASCADE" - } else { - if _, err := db.Exec("CREATE DATABASE " + name); err != nil { - t.Fatal(err) - } - newsource = fmt.Sprintf("postgres://%s:%s@%s:%s/%s?sslmode=disable", pgUser, pgPass, pgHost, pgPort, name) - dropQuery = "DROP DATABASE IF EXISTS " + name + " WITH (FORCE)" - } - - sdb, err := sql.Open("postgres", newsource) - if err != nil { - t.Fatal(err) - } - - files, err := sqlpath.Glob(migrations) - if err != nil { - t.Fatal(err) - } - for _, f := range files { - blob, err := os.ReadFile(f) - if err != nil { - t.Fatal(err) - } - if _, err := sdb.Exec(string(blob)); err != nil { - t.Fatalf("%s: %s", filepath.Base(f), err) - } - } - - return sdb, func() { - if _, err := db.Exec(dropQuery); err != nil { - t.Fatal(err) - } - db.Close() - } -}