generator/*: allow passing DB directly

Closes #441
This commit is contained in:
TotallyGamerJet 2025-01-17 14:49:04 -05:00
parent 269bb4a3c9
commit e4ceb421de
3 changed files with 18 additions and 4 deletions

View file

@ -56,6 +56,14 @@ func GenerateDSN(dsn, schema, destDir string, templates ...template.Template) er
defer db.Close()
fmt.Println("Retrieving schema information...")
return GenerateDB(db, schema, cfg.Database, destDir, templates...)
}
// GenerateDB generates jet files using the provided *sql.DB
func GenerateDB(db *sql.DB, dbName, schema, destDir string, templates ...template.Template) error {
if dbName == "" {
return fmt.Errorf("database name is required")
}
generatorTemplate := template.Default(postgres.Dialect)
if len(templates) > 0 {
generatorTemplate = templates[0]
@ -66,7 +74,7 @@ func GenerateDSN(dsn, schema, destDir string, templates ...template.Template) er
return fmt.Errorf("failed to get '%s' schema metadata: %w", schema, err)
}
dirPath := filepath.Join(destDir, cfg.Database)
dirPath := filepath.Join(destDir, dbName)
err = template.ProcessSchema(dirPath, schemaMetadata, generatorTemplate)
if err != nil {