# Template Based Scaffolding for PostgreSQL

pg-generator is a command line utility which generates files for each table and schema of a PostgreSQL database.

pg-generator (opens new window) takes your burden of manually creating ORM files or any other files which are based on database structure.

# Installation

$ npm install -g pg-generator

# Sequelize Example

See sequelize template (opens new window) for usage and details.

$ pgen template sequelize -t sequelize-template
$ pgen exec sequelize-template -d our_crm -u user -p tOpSeCrEt -t model --fix

First command copies one of the builtin templates (sequelize) into target directory (sequelize-template). Second command generates files based on given template (sequelize-template) into target directory (model).

You may change generated templates according to your requirements, also you should add generated templates to your repository.

# Basic Usage

  1. Use pgen template to copy one of the builtin templates or create your own template. (You can use base template for starting up.)
  2. Use pgen exec to create files based on your template.

You can access CLI options and their description via -h or --help arguments.

$ pgen --help
$ pgen template --help
$ pgen exec --help

# Template

Creating a template from scratch is easy. Execute command below:

$ pgen template base -t my-template

To see a basic example execute following command from shell and examine files in tutorial-example directory.

$ pgen template tutorial -t tutorial-template

For a full fledged example which we use at Ozcorp, see Sequelize Example above.

# For Low Level Direct Access: pg-structure (opens new window)

If you prefer lower level methods to directly access PostgreSQL structure to build your own generators. You can check pg-structure (opens new window) module which is used to build this module and provides direct access to database structure.

# Full Documentation

Documentation is available on pg-generator.com (opens new window)

# Special Thanks

Documentation is auto generated thanks to:

# Contributions


Without necessary information, it is hard to impossible to debug every error for every database.

Please include details below in your bug reports.

  1. pg-generator and PostgreSQL version,
  2. DDL (Database creation script),
  3. pgen commands you executed,
  4. JS code you executed if it is a runtime bug,
  5. Error message.

Send bug reports and feature requests to GitHub Issues (opens new window).