Skip to content

Commit 0ba2551

Browse files
authored
Merge pull request #433 from stephenafamo/codegen-driver
Rename `driver_name` to `driver` in codegen config
2 parents af1e59d + fe8b1bf commit 0ba2551

35 files changed

+142
-171
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1818
- The method `BeginTx` on the `bob.Transaction` interface is now changed to `Begin` and it takes a single context argument.
1919
This is to make it easier to implement for non `database/sql` drivers.
2020
- In the generated model, the `PrimaryKeyVals()` method is now private.
21+
- Renamed `driver_name` to `driver` in code generation configuration.
2122

2223
### Removed
2324

gen/bobgen-helpers/helpers.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ func Version() string {
3434

3535
type Config struct {
3636
// Which `database` driver to use (the full module name)
37-
DriverName string `yaml:"driver_name"`
37+
Driver string `yaml:"driver"`
3838
// The database connection string
3939
Dsn string
4040
// List of tables that will be included. Others are ignored

gen/bobgen-mysql/driver/exclude-tables.golden.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2770,5 +2770,5 @@
27702770
}
27712771
],
27722772
"extra_info": null,
2773-
"driver_name": "github.com/go-sql-driver/mysql"
2773+
"driver": "github.com/go-sql-driver/mysql"
27742774
}

gen/bobgen-mysql/driver/include-exclude-tables-mixed.golden.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,5 +130,5 @@
130130
"query_folders": [],
131131
"enums": null,
132132
"extra_info": null,
133-
"driver_name": "github.com/go-sql-driver/mysql"
133+
"driver": "github.com/go-sql-driver/mysql"
134134
}

gen/bobgen-mysql/driver/include-exclude-tables-regex.golden.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,5 +130,5 @@
130130
"query_folders": [],
131131
"enums": null,
132132
"extra_info": null,
133-
"driver_name": "github.com/go-sql-driver/mysql"
133+
"driver": "github.com/go-sql-driver/mysql"
134134
}

gen/bobgen-mysql/driver/include-exclude-tables.golden.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,5 +67,5 @@
6767
"query_folders": [],
6868
"enums": null,
6969
"extra_info": null,
70-
"driver_name": "github.com/go-sql-driver/mysql"
70+
"driver": "github.com/go-sql-driver/mysql"
7171
}

gen/bobgen-mysql/driver/include-tables.golden.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,5 +130,5 @@
130130
"query_folders": [],
131131
"enums": null,
132132
"extra_info": null,
133-
"driver_name": "github.com/go-sql-driver/mysql"
133+
"driver": "github.com/go-sql-driver/mysql"
134134
}

gen/bobgen-mysql/driver/mysql.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ func (d *driver) Assemble(ctx context.Context) (*DBInfo, error) {
8181
}
8282
defer d.conn.Close()
8383

84-
dbinfo = &DBInfo{DriverName: "github.com/go-sql-driver/mysql"}
84+
dbinfo = &DBInfo{Driver: "github.com/go-sql-driver/mysql"}
8585

8686
dbinfo.Tables, err = drivers.BuildDBInfo[any](ctx, d, d.config.Concurrency, d.config.Only, d.config.Except)
8787
if err != nil {

gen/bobgen-mysql/driver/mysql.golden.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2938,5 +2938,5 @@
29382938
}
29392939
],
29402940
"extra_info": null,
2941-
"driver_name": "github.com/go-sql-driver/mysql"
2941+
"driver": "github.com/go-sql-driver/mysql"
29422942
}

gen/bobgen-psql/driver/exclude-tables.golden.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5866,5 +5866,5 @@
58665866
}
58675867
],
58685868
"extra_info": null,
5869-
"driver_name": "github.com/lib/pq"
5869+
"driver": "github.com/lib/pq"
58705870
}

gen/bobgen-psql/driver/include-exclude-tables-mixed.golden.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,5 +155,5 @@
155155
}
156156
],
157157
"extra_info": null,
158-
"driver_name": "github.com/lib/pq"
158+
"driver": "github.com/lib/pq"
159159
}

gen/bobgen-psql/driver/include-exclude-tables-regex.golden.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,5 +155,5 @@
155155
}
156156
],
157157
"extra_info": null,
158-
"driver_name": "github.com/lib/pq"
158+
"driver": "github.com/lib/pq"
159159
}

gen/bobgen-psql/driver/include-exclude-tables.golden.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,5 +85,5 @@
8585
}
8686
],
8787
"extra_info": null,
88-
"driver_name": "github.com/lib/pq"
88+
"driver": "github.com/lib/pq"
8989
}

gen/bobgen-psql/driver/include-tables.golden.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,5 +155,5 @@
155155
}
156156
],
157157
"extra_info": null,
158-
"driver_name": "github.com/lib/pq"
158+
"driver": "github.com/lib/pq"
159159
}

gen/bobgen-psql/driver/psql.go

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,12 @@ import (
1818
"github.com/volatiletech/strmangle"
1919
)
2020

21-
const defaultDriverName = "github.com/lib/pq"
21+
const (
22+
pqDriver = "github.com/lib/pq"
23+
// pgxDriver = "github.com/jackc/pgx/v5"
24+
pgxStdlibDriver = "github.com/jackc/pgx/v5/stdlib"
25+
defaultDriver = pqDriver
26+
)
2227

2328
var rgxValidColumnName = regexp.MustCompile(`(?i)^[a-z_][a-z0-9_]*$`)
2429

@@ -61,22 +66,19 @@ func New(config Config) Interface {
6166
config.UUIDPkg = "gofrs"
6267
}
6368

64-
if config.DriverName == "" {
65-
config.DriverName = defaultDriverName
69+
if config.Driver == "" {
70+
config.Driver = defaultDriver
6671
}
6772

68-
switch config.DriverName {
73+
switch config.Driver {
6974
// These are the only supported drivers
70-
case "github.com/lib/pq":
71-
// case "github.com/jackc/pgx/v5":
72-
case "github.com/jackc/pgx/v5/stdlib":
75+
case pqDriver, pgxStdlibDriver:
76+
// case pgxDriver:
7377
default:
7478
panic(fmt.Sprintf(
7579
"unsupported driver %s, supported drivers are: %q, %q",
76-
config.DriverName,
77-
// "github.com/jackc/pgx/v5",
78-
"github.com/lib/pq",
79-
"github.com/jackc/pgx/v5/stdlib",
80+
config.Driver, pqDriver, pgxStdlibDriver,
81+
// pgxDriver,
8082
))
8183
}
8284

@@ -136,7 +138,7 @@ func (d *driver) Assemble(ctx context.Context) (*DBInfo, error) {
136138
}
137139
defer d.conn.Close()
138140

139-
dbinfo = &DBInfo{DriverName: d.config.DriverName}
141+
dbinfo = &DBInfo{Driver: d.config.Driver}
140142

141143
// drivers.Tables call translateColumnType which uses Enums
142144
if err := d.loadEnums(ctx); err != nil {

gen/bobgen-psql/driver/psql.golden.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6528,5 +6528,5 @@
65286528
}
65296529
],
65306530
"extra_info": null,
6531-
"driver_name": "github.com/lib/pq"
6531+
"driver": "github.com/lib/pq"
65326532
}

gen/bobgen-psql/driver/psql_test.go

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -76,20 +76,20 @@ func testPostgresDriver(t *testing.T, dsn string) {
7676
}
7777

7878
tests := []struct {
79-
name string
80-
driverName string
79+
name string
80+
driver string
8181
}{
8282
{
83-
name: "pq",
84-
driverName: "github.com/lib/pq",
83+
name: "pq",
84+
driver: "github.com/lib/pq",
8585
},
8686
// {
8787
// name: "pgx-v5",
88-
// driverName: "github.com/jackc/pgx/v5",
88+
// driver: "github.com/jackc/pgx/v5",
8989
// },
9090
{
91-
name: "pgx-v5-std",
92-
driverName: "github.com/jackc/pgx/v5/stdlib",
91+
name: "pgx-v5-std",
92+
driver: "github.com/jackc/pgx/v5/stdlib",
9393
},
9494
}
9595

@@ -109,13 +109,13 @@ func testPostgresDriver(t *testing.T, dsn string) {
109109
})
110110

111111
overwriteGolden := *flagOverwriteGolden
112-
if tt.driverName != "" && tt.driverName != defaultDriverName {
112+
if tt.driver != "" && tt.driver != defaultDriver {
113113
// If not using the default driver, we do not overwrite the golden file
114114
overwriteGolden = false
115115
}
116116

117117
testConfig := config
118-
testConfig.DriverName = tt.driverName
118+
testConfig.Driver = tt.driver
119119

120120
testgen.TestDriver(t, testgen.DriverTestConfig[any, any, IndexExtra]{
121121
Root: out,
@@ -126,7 +126,7 @@ func testPostgresDriver(t *testing.T, dsn string) {
126126
GoldenFile: "psql.golden.json",
127127
GoldenFileMod: func(b []byte) []byte {
128128
return []byte(strings.ReplaceAll(
129-
string(b), defaultDriverName, tt.driverName,
129+
string(b), defaultDriver, tt.driver,
130130
))
131131
},
132132
OverwriteGolden: overwriteGolden,

gen/bobgen-psql/templates/models/bob_psql_blocks.bob.go.tpl

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
{{- define "unique_constraint_error_detection_method"}}
22
func (e *UniqueConstraintError) Is(target error) bool {
3-
{{if eq $.DriverName "github.com/lib/pq" "github.com/jackc/pgx/v5" "github.com/jackc/pgx/v5/stdlib"}}
3+
{{if eq $.Driver "github.com/lib/pq" "github.com/jackc/pgx/v5" "github.com/jackc/pgx/v5/stdlib"}}
44
{{$errType := ""}}
55
{{$constraintNameField := "ConstraintName"}}
6-
{{if eq $.DriverName "github.com/lib/pq"}}
6+
{{if eq $.Driver "github.com/lib/pq"}}
77
{{$.Importer.Import "github.com/lib/pq"}}
88
{{$errType = "*pq.Error"}}
99
{{$constraintNameField = "Constraint"}}
10-
{{else if hasPrefix "github.com/jackc/pgx/v5" $.DriverName}}
10+
{{else if hasPrefix "github.com/jackc/pgx/v5" $.Driver}}
1111
{{$.Importer.Import "github.com/jackc/pgx/v5/pgconn"}}
1212
{{$errType = "*pgconn.PgError"}}
1313
{{else}}
14-
panic("Unsupported driver {{$.DriverName}} for UniqueConstraintError detection")
14+
panic("Unsupported driver {{$.Driver}} for UniqueConstraintError detection")
1515
{{end}}
1616
err, ok := target.({{$errType}})
1717
if !ok {

gen/bobgen-sql/driver/sql.go

Lines changed: 9 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -21,35 +21,24 @@ import (
2121
)
2222

2323
type Config struct {
24+
helpers.Config `yaml:",squash"`
25+
2426
// What dialect to generate with
2527
// psql | mysql | sqlite
2628
Dialect string
2729
// Glob pattern to match migration files
2830
Pattern string
29-
// Folders containing query files
30-
Queries []string `yaml:"queries"`
3131
// The database schemas to generate models for
3232
Schemas []string
3333
// The name of this schema will not be included in the generated models
3434
// a context value can then be used to set the schema at runtime
3535
// useful for multi-tenant setups
3636
SharedSchema string `yaml:"shared_schema"`
37-
// List of tables that will be included. Others are ignored
38-
Only map[string][]string
39-
// List of tables that will be should be ignored. Others are included
40-
Except map[string][]string
4137
// How many tables to fetch in parallel
4238
Concurrency int
4339
// Which UUID package to use (gofrs or google)
4440
UUIDPkg string `yaml:"uuid_pkg"`
45-
// Which `database/sql` driver to use (the full module name)
46-
DriverName string `yaml:"driver_name"`
47-
48-
Output string
49-
Pkgname string
50-
NoFactory bool `yaml:"no_factory"`
51-
52-
fs fs.FS
41+
fs fs.FS
5342
}
5443

5544
func RunPostgres(ctx context.Context, state *gen.State[any], config Config) error {
@@ -94,17 +83,9 @@ func getPsqlDriver(ctx context.Context, config Config) (psqlDriver.Interface, er
9483
}
9584
db.Close() // close early
9685

86+
config.Dsn = dsn
9787
d := wrapDriver(ctx, psqlDriver.New(psqlDriver.Config{
98-
Config: helpers.Config{
99-
Dsn: dsn,
100-
Queries: config.Queries,
101-
Only: config.Only,
102-
Except: config.Except,
103-
DriverName: config.DriverName,
104-
Output: config.Output,
105-
Pkgname: config.Pkgname,
106-
NoFactory: config.NoFactory,
107-
},
88+
Config: config.Config,
10889
Schemas: pq.StringArray(config.Schemas),
10990
SharedSchema: config.SharedSchema,
11091
Concurrency: config.Concurrency,
@@ -155,16 +136,9 @@ func getMySQLDriver(ctx context.Context, config Config) (mysqlDriver.Interface,
155136
}
156137
db.Close() // close early
157138

139+
config.Dsn = dsn
158140
d := wrapDriver(ctx, mysqlDriver.New(mysqlDriver.Config{
159-
Config: helpers.Config{
160-
Dsn: dsn,
161-
Queries: config.Queries,
162-
Only: config.Only,
163-
Except: config.Except,
164-
Output: config.Output,
165-
Pkgname: config.Pkgname,
166-
NoFactory: config.NoFactory,
167-
},
141+
Config: config.Config,
168142
Concurrency: config.Concurrency,
169143
}))
170144

@@ -215,17 +189,9 @@ func getSQLiteDriver(ctx context.Context, config Config) (sqliteDriver.Interface
215189
}
216190
db.Close() // close early
217191

192+
config.Dsn = "file:" + tmp.Name()
218193
d := sqliteDriver.New(sqliteDriver.Config{
219-
Config: helpers.Config{
220-
Dsn: tmp.Name(),
221-
Queries: config.Queries,
222-
DriverName: config.DriverName,
223-
Only: config.Only,
224-
Except: config.Except,
225-
Output: config.Output,
226-
Pkgname: config.Pkgname,
227-
NoFactory: config.NoFactory,
228-
},
194+
Config: config.Config,
229195
Attach: attach,
230196
SharedSchema: config.SharedSchema,
231197
})

gen/bobgen-sqlite/driver/exclude-tables.golden.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3277,5 +3277,5 @@
32773277
"query_folders": [],
32783278
"enums": null,
32793279
"extra_info": null,
3280-
"driver_name": "modernc.org/sqlite"
3280+
"driver": "modernc.org/sqlite"
32813281
}

gen/bobgen-sqlite/driver/include-exclude-tables-mixed.golden.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -256,5 +256,5 @@
256256
"query_folders": [],
257257
"enums": null,
258258
"extra_info": null,
259-
"driver_name": "modernc.org/sqlite"
259+
"driver": "modernc.org/sqlite"
260260
}

gen/bobgen-sqlite/driver/include-exclude-tables-regex.golden.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -256,5 +256,5 @@
256256
"query_folders": [],
257257
"enums": null,
258258
"extra_info": null,
259-
"driver_name": "modernc.org/sqlite"
259+
"driver": "modernc.org/sqlite"
260260
}

gen/bobgen-sqlite/driver/include-exclude-tables.golden.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,5 +130,5 @@
130130
"query_folders": [],
131131
"enums": null,
132132
"extra_info": null,
133-
"driver_name": "modernc.org/sqlite"
133+
"driver": "modernc.org/sqlite"
134134
}

gen/bobgen-sqlite/driver/include-tables.golden.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -256,5 +256,5 @@
256256
"query_folders": [],
257257
"enums": null,
258258
"extra_info": null,
259-
"driver_name": "modernc.org/sqlite"
259+
"driver": "modernc.org/sqlite"
260260
}

gen/bobgen-sqlite/driver/libsql.golden.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2662,5 +2662,5 @@
26622662
"query_folders": [],
26632663
"enums": null,
26642664
"extra_info": null,
2665-
"driver_name": "github.com/tursodatabase/libsql-client-go/libsql"
2665+
"driver": "github.com/tursodatabase/libsql-client-go/libsql"
26662666
}

0 commit comments

Comments
 (0)