From 98fc87942f6edc6142af994b1cf3975da470c6d0 Mon Sep 17 00:00:00 2001 From: GeertJohan Date: Thu, 15 Jan 2026 09:18:42 +0100 Subject: [PATCH] Make generated output files optional --- cmd/generate.go | 68 +- example/{foo.sql => foo.gen.sql} | 0 example/foo.gen.svg | 52 + example/foo.png | Bin 107 -> 0 bytes example/migrations/001_init.up.sql | 10 - example/trek.yaml | 3 + internal/configuration/config.go | 44 + internal/pgmodeler.go | 30 +- internal/templates/trek.yaml.tmpl | 3 + tests/output/migrations/001_init.up.sql | 10 - ...warehouse.sql => santas_warehouse.gen.sql} | 0 tests/output/santas_warehouse.gen.svg | 1408 +++++++++++++++++ tests/output/santas_warehouse.png | Bin 61808 -> 0 bytes tests/output/trek.yaml | 3 + 14 files changed, 1579 insertions(+), 52 deletions(-) rename example/{foo.sql => foo.gen.sql} (100%) create mode 100644 example/foo.gen.svg delete mode 100644 example/foo.png rename tests/output/{santas_warehouse.sql => santas_warehouse.gen.sql} (100%) create mode 100644 tests/output/santas_warehouse.gen.svg delete mode 100644 tests/output/santas_warehouse.png diff --git a/cmd/generate.go b/cmd/generate.go index 368d6da..ad0f001 100644 --- a/cmd/generate.go +++ b/cmd/generate.go @@ -487,7 +487,7 @@ var ( modelContent = "" ) -//nolint:cyclop +//nolint:cyclop,gocognit func generateMigrationStatements( ctx context.Context, config *configuration.Config, @@ -501,25 +501,41 @@ func generateMigrationStatements( ) (string, error) { log.Println("Generating migration statements") - err := internal.PgModelerExportToFile( - ctx, - filepath.Join(wd, fmt.Sprintf("%s.dbm", config.ModelName)), - filepath.Join(wd, fmt.Sprintf("%s.sql", config.ModelName)), - ) + dbmPath := filepath.Join(wd, fmt.Sprintf("%s.dbm", config.ModelName)) + // Generate SQL file in tmpDir for internal use during migration generation + tmpSQLPath := filepath.Join(tmpDir, fmt.Sprintf("%s.sql", config.ModelName)) + + err := internal.PgmodelerExportSQL(ctx, dbmPath, tmpSQLPath) if err != nil { return "", fmt.Errorf("failed to export model: %w", err) } - go func() { - err = internal.PgModelerExportToPng( - ctx, - filepath.Join(wd, fmt.Sprintf("%s.dbm", config.ModelName)), - filepath.Join(wd, fmt.Sprintf("%s.png", config.ModelName)), - ) + // Copy SQL to output path if enabled + if sqlPath := config.GetOutputPath("sql"); sqlPath != "" { + var sqlContent []byte + sqlContent, err = os.ReadFile(tmpSQLPath) + if err != nil { + return "", fmt.Errorf("failed to read sql file: %w", err) + } + err = os.WriteFile(filepath.Join(wd, sqlPath), sqlContent, 0o644) //nolint:gosec + if err != nil { + return "", fmt.Errorf("failed to write sql output file: %w", err) + } + } + + if pngPath := config.GetOutputPath("png"); pngPath != "" { + err = internal.PgmodelerExportPNG(ctx, dbmPath, filepath.Join(wd, pngPath)) + if err != nil { + return "", fmt.Errorf("failed to export png: %w", err) + } + } + + if svgPath := config.GetOutputPath("svg"); svgPath != "" { + err = internal.PgmodelerExportSVG(ctx, dbmPath, filepath.Join(wd, svgPath)) if err != nil { - log.Printf("Failed to export png: %v\n", err) + return "", fmt.Errorf("failed to export svg: %w", err) } - }() + } for _, role := range config.Roles { _, err = targetConn.Exec(ctx, fmt.Sprintf("CREATE ROLE %q WITH LOGIN;", role.Name)) @@ -528,28 +544,20 @@ func generateMigrationStatements( } } - err = executeTargetSQL(ctx, config, wd, targetConn) + err = executeTargetSQL(ctx, tmpSQLPath, targetConn) if err != nil { return "", fmt.Errorf("failed to execute target sql: %w", err) } - if initial { - // If we are developing the schema initially, there will be no diffs, - // and we want to copy over the schema file to the initial migration file - var input []byte - input, err = os.ReadFile(filepath.Join(wd, fmt.Sprintf("%s.sql", config.ModelName))) + // Apply existing migrations to the migrate database (skip if no migrations exist yet) + if !initial { + err = executeMigrateSQL(migrationsDir, migrateConn) if err != nil { - return "", fmt.Errorf("failed to read sql file: %w", err) + return "", fmt.Errorf("failed to execute migrate sql: %w", err) } - - return string(input), nil - } - - err = executeMigrateSQL(migrationsDir, migrateConn) - if err != nil { - return "", fmt.Errorf("failed to execute migrate sql: %w", err) } + // Generate diff between migrate database (with existing migrations) and target database (with full schema) statements, err := internal.Diff( ctx, postgresConn, @@ -595,8 +603,8 @@ func executeMigrateSQL(migrationsDir string, migrateConn *pgx.Conn) error { return nil } -func executeTargetSQL(ctx context.Context, config *configuration.Config, wd string, targetConn *pgx.Conn) error { - targetSQL, err := os.ReadFile(filepath.Join(wd, fmt.Sprintf("%s.sql", config.ModelName))) +func executeTargetSQL(ctx context.Context, sqlPath string, targetConn *pgx.Conn) error { + targetSQL, err := os.ReadFile(sqlPath) if err != nil { return fmt.Errorf("failed to read target sql: %w", err) } diff --git a/example/foo.sql b/example/foo.gen.sql similarity index 100% rename from example/foo.sql rename to example/foo.gen.sql diff --git a/example/foo.gen.svg b/example/foo.gen.svg new file mode 100644 index 0000000..9690861 --- /dev/null +++ b/example/foo.gen.svg @@ -0,0 +1,52 @@ + + +SVG representation of database model +SVG file generated by pgModeler + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/example/foo.png b/example/foo.png deleted file mode 100644 index 54c13c71399941d2288c64782d02666dca37df86..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 107 zcmeAS@N?(olHy`uVBq!ia0vp^q9Dw{1SHi;jSd1S&H|6fVg?4jBOuH;Rhv&5C@Aac z;uvDln;dfWO6mdzgTO_VA^%tW3;etISNn!Kh93zGOAjy|-~}pV@O1TaS?83{1OVLk B9oGN= diff --git a/example/migrations/001_init.up.sql b/example/migrations/001_init.up.sql index f46bd93..e69de29 100644 --- a/example/migrations/001_init.up.sql +++ b/example/migrations/001_init.up.sql @@ -1,10 +0,0 @@ --- ** Database generated with pgModeler (PostgreSQL Database Modeler). --- ** pgModeler version: 1.2.2 --- ** PostgreSQL version: 18.0 --- ** Project Site: pgmodeler.io --- ** Model Author: --- - -SET search_path TO pg_catalog,public; --- ddl-end -- - - diff --git a/example/trek.yaml b/example/trek.yaml index 22a1c9d..96b7bc2 100644 --- a/example/trek.yaml +++ b/example/trek.yaml @@ -3,3 +3,6 @@ db_name: bar roles: - name: alice - name: bob +output: + sql: {} + svg: {} diff --git a/internal/configuration/config.go b/internal/configuration/config.go index 394b60b..54eea68 100644 --- a/internal/configuration/config.go +++ b/internal/configuration/config.go @@ -24,7 +24,9 @@ type Config struct { //nolint:tagliatelle Roles []Role `yaml:"roles"` Templates []Template `yaml:"templates"` + Output *Output `yaml:"output"` } + type Role struct { Name string `yaml:"name"` } @@ -34,6 +36,16 @@ type Template struct { Content string `yaml:"content"` } +type OutputFile struct { + Path string `yaml:"path"` +} + +type Output struct { + SQL *OutputFile `yaml:"sql"` + PNG *OutputFile `yaml:"png"` + SVG *OutputFile `yaml:"svg"` +} + func ReadConfig(wd string) (*Config, error) { var config *Config file, err := os.ReadFile(filepath.Join(wd, "trek.yaml")) @@ -85,6 +97,38 @@ func (c *Config) validate() (problems []string) { return problems } +// GetOutputPath returns the output path for the given type if enabled, or empty string if not. +// The outputType must be one of: "sql", "png", "svg". Panics if an invalid outputType is provided. +func (c *Config) GetOutputPath(outputType string) string { + if c.Output == nil { + return "" + } + + var outputFile *OutputFile + + switch outputType { + case "sql": + outputFile = c.Output.SQL + case "png": + outputFile = c.Output.PNG + case "svg": + outputFile = c.Output.SVG + default: + panic(fmt.Sprintf("invalid output type: %q", outputType)) + } + + if outputFile == nil { + return "" + } + + if outputFile.Path != "" { + return outputFile.Path + } + + // Default path: {model_name}.gen.{ext} + return fmt.Sprintf("%s.gen.%s", c.ModelName, outputType) +} + func ValidateIdentifier(identifier string) bool { return regexpValidIdentifier.MatchString(identifier) } diff --git a/internal/pgmodeler.go b/internal/pgmodeler.go index e70cd7f..db2f3b8 100644 --- a/internal/pgmodeler.go +++ b/internal/pgmodeler.go @@ -7,7 +7,7 @@ import ( "os/exec" ) -func PgModelerExportToFile(ctx context.Context, input, output string) error { +func PgmodelerExportSQL(ctx context.Context, input, output string) error { //nolint:gosec err := os.WriteFile(output, []byte{}, 0o644) if err != nil { @@ -35,7 +35,7 @@ func PgModelerExportToFile(ctx context.Context, input, output string) error { return nil } -func PgModelerExportToPng(ctx context.Context, input, output string) error { +func PgmodelerExportPNG(ctx context.Context, input, output string) error { //nolint:gosec err := os.WriteFile(output, []byte{}, 0o644) if err != nil { @@ -60,3 +60,29 @@ func PgModelerExportToPng(ctx context.Context, input, output string) error { return nil } + +func PgmodelerExportSVG(ctx context.Context, input, output string) error { + //nolint:gosec + err := os.WriteFile(output, []byte{}, 0o644) + if err != nil { + return fmt.Errorf("failed to create output svg: %w", err) + } + //nolint:gosec + cmdPgModeler := exec.CommandContext( + ctx, + "pgmodeler-cli", + "--input", + input, + "--export-to-svg", + "--output", + output, + ) + cmdPgModeler.Stderr = os.Stderr + + out, err := cmdPgModeler.Output() + if err != nil { + return fmt.Errorf("failed to run pgmodeler: %w %s", err, string(out)) + } + + return nil +} diff --git a/internal/templates/trek.yaml.tmpl b/internal/templates/trek.yaml.tmpl index 8e59a24..a9ac737 100755 --- a/internal/templates/trek.yaml.tmpl +++ b/internal/templates/trek.yaml.tmpl @@ -2,3 +2,6 @@ model_name: {{.model_name}} db_name: {{.db_name}} roles:{{range .roleNames}} - name: {{.}}{{end}} +output: + sql: {} + svg: {} diff --git a/tests/output/migrations/001_init.up.sql b/tests/output/migrations/001_init.up.sql index f46bd93..e69de29 100644 --- a/tests/output/migrations/001_init.up.sql +++ b/tests/output/migrations/001_init.up.sql @@ -1,10 +0,0 @@ --- ** Database generated with pgModeler (PostgreSQL Database Modeler). --- ** pgModeler version: 1.2.2 --- ** PostgreSQL version: 18.0 --- ** Project Site: pgmodeler.io --- ** Model Author: --- - -SET search_path TO pg_catalog,public; --- ddl-end -- - - diff --git a/tests/output/santas_warehouse.sql b/tests/output/santas_warehouse.gen.sql similarity index 100% rename from tests/output/santas_warehouse.sql rename to tests/output/santas_warehouse.gen.sql diff --git a/tests/output/santas_warehouse.gen.svg b/tests/output/santas_warehouse.gen.svg new file mode 100644 index 0000000..8f3448c --- /dev/null +++ b/tests/output/santas_warehouse.gen.svg @@ -0,0 +1,1408 @@ + + +SVG representation of database model +SVG file generated by pgModeler + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +warehouse + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +factory + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +id + + + + + + + bigint + + + + + + +« pk » + + + + + + + + + + + + + + + + + + + +name + + + + + + + text + + + + + + +« nn » + + + + + + + + + + + + + + + + + + + +toys_produced + + + + + + + bigint + + + + + + +« nn » + + + + + + + + + + + + + + + + + + + + + + + + + +machines_pk + + + + + + + constraint + + + + + + +« pk » + + + + + + + + + + + + + + + + + + + +toys_produced_increase + + + + + + + trigger + + + + + + +« b u » + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +machines + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +id + + + + + + + bigint + + + + + + +« pk » + + + + + + + + + + + + + + + + + + + +shelf + + + + + + + bigint + + + + + + +« nn » + + + + + + + + + + + + + + + + + + + +total_capacity + + + + + + + bigint + + + + + + +« nn » + + + + + + + + + + + + + + + + + + + +used_capacity + + + + + + + bigint + + + + + + +« nn » + + + + + + + + + + + + + + + + + + + +current_toy_type + + + + + + + text + + + + + + +« nn » + + + + + + + + + + + + + + + + + + + + + + + + + +storage_locations_pk + + + + + + + constraint + + + + + + +« pk » + + + + + + + + + + + + + + + + + + + +ck_capacity + + + + + + + constraint + + + + + + +« ck » + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +storage_locations + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/output/santas_warehouse.png b/tests/output/santas_warehouse.png deleted file mode 100644 index 4cd064486248db917d532946136383bc29e12481..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 61808 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 LCRg#&H0XZ;yUJBa diff --git a/tests/output/trek.yaml b/tests/output/trek.yaml index 2d3f4b9..0c0c874 100644 --- a/tests/output/trek.yaml +++ b/tests/output/trek.yaml @@ -3,3 +3,6 @@ db_name: north_pole roles: - name: santa - name: worker +output: + sql: {} + svg: {}