Skip to main content

Bob Gen for Postgres

Generates an ORM based on a postgres database schema


# With env variable
PSQL_DSN=postgres://user:pass@host:port/dbname go run

# With configuration file
go run -c ./config/bobgen.yaml

Driver Configuration

The configuration for the postgres driver must all be prefixed by the driver name. You must use a configuration file or environment variables for configuring the database driver.

In the configuration file for postgresql for example you would do:

dsn: "postgres://user:pass@host:port/dbname"

When you use an environment variable it must also be prefixed by the driver name:


The values that exist for the drivers:

dsnURL to connect to
schemasSchemas find tables in["public"]
shared_schemaSchema to not include prefix in modelfirst value in "schemas"
outputFolder for generated files"models"
pkgnamePackage name for generated code"models"
no_factorySkip generation of factoriesfalse
uuid_pkgUUID package to use (gofrs or google)"gofrs"
concurrencyHow many tables to fetch in parallel10
onlyOnly generate these
exceptSkip generation for these

Example of Only/Except:

# Removes public.migrations table, the name column from the addresses table, and
# secret_col of any table from being generated. Foreign keys that reference tables
# or columns that are no longer generated may cause problems.
- name
- secret_col