Skip to content

Commit 00b8155

Browse files
authored
Merge pull request #443 from TotallyGamerJet/441_gen
generator/*: allow passing DB directly
2 parents 269bb4a + 8975f87 commit 00b8155

File tree

3 files changed

+15
-6
lines changed

3 files changed

+15
-6
lines changed

generator/mysql/mysql_generator.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ func Generate(destDir string, dbConn DBConnection, generatorTemplate ...template
3838
}
3939
defer db.Close()
4040

41-
err = generate(db, dbConn.DBName, destDir, generatorTemplate...)
41+
err = GenerateDB(db, dbConn.DBName, destDir, generatorTemplate...)
4242
if err != nil {
4343
return err
4444
}
@@ -70,7 +70,7 @@ func GenerateDSN(dsn, destDir string, templates ...template.Template) error {
7070
}
7171
defer db.Close()
7272

73-
err = generate(db, cfg.DBName, destDir, templates...)
73+
err = GenerateDB(db, cfg.DBName, destDir, templates...)
7474
if err != nil {
7575
return fmt.Errorf("failed to generate: %w", err)
7676
}
@@ -96,7 +96,8 @@ func openConnection(connectionString string) (*sql.DB, error) {
9696
return db, nil
9797
}
9898

99-
func generate(db *sql.DB, dbName, destDir string, templates ...template.Template) error {
99+
// GenerateDB generates jet files using the provided *sql.DB
100+
func GenerateDB(db *sql.DB, dbName, destDir string, templates ...template.Template) error {
100101
fmt.Println("Retrieving database information...")
101102
// No schemas in MySQL
102103
schemaMetaData, err := metadata.GetSchema(db, &mySqlQuerySet{}, dbName)

generator/postgres/postgres_generator.go

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,11 @@ func GenerateDSN(dsn, schema, destDir string, templates ...template.Template) er
5656
defer db.Close()
5757

5858
fmt.Println("Retrieving schema information...")
59+
return GenerateDB(db, schema, filepath.Join(destDir, cfg.Database), templates...)
60+
}
61+
62+
// GenerateDB generates jet files using the provided *sql.DB
63+
func GenerateDB(db *sql.DB, schema, destDir string, templates ...template.Template) error {
5964
generatorTemplate := template.Default(postgres.Dialect)
6065
if len(templates) > 0 {
6166
generatorTemplate = templates[0]
@@ -66,9 +71,7 @@ func GenerateDSN(dsn, schema, destDir string, templates ...template.Template) er
6671
return fmt.Errorf("failed to get '%s' schema metadata: %w", schema, err)
6772
}
6873

69-
dirPath := filepath.Join(destDir, cfg.Database)
70-
71-
err = template.ProcessSchema(dirPath, schemaMetadata, generatorTemplate)
74+
err = template.ProcessSchema(destDir, schemaMetadata, generatorTemplate)
7275
if err != nil {
7376
return fmt.Errorf("failed to generate schema %s: %d", schemaMetadata.Name, err)
7477
}

generator/sqlite/sqlite_generator.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package sqlite
33
import (
44
"database/sql"
55
"fmt"
6+
67
"github.com/go-jet/jet/v2/generator/metadata"
78
"github.com/go-jet/jet/v2/generator/template"
89
"github.com/go-jet/jet/v2/sqlite"
@@ -17,7 +18,11 @@ func GenerateDSN(dsn, destDir string, templates ...template.Template) error {
1718
defer db.Close()
1819

1920
fmt.Println("Retrieving schema information...")
21+
return GenerateDB(db, destDir, templates...)
22+
}
2023

24+
// GenerateDB generates jet files using the provided *sql.DB
25+
func GenerateDB(db *sql.DB, destDir string, templates ...template.Template) error {
2126
generatorTemplate := template.Default(sqlite.Dialect)
2227
if len(templates) > 0 {
2328
generatorTemplate = templates[0]

0 commit comments

Comments
 (0)