# Template Based Scaffolding for PostgreSQL
- Reverse engineers PostgreSQL database,
- Executes nunjucks (opens new window) templates for each table, schema and for database,
- Makes database objects available to templates using pg-structure (opens new window).
pg-generator (opens new window) takes your burden of manually creating ORM files or any other files which are based on database structure.
$ 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
pgen templateto copy one of the builtin templates or create your own template. (You can use base template for starting up.)
pgen execto create files based on your template.
You can access CLI options and their description via
$ pgen --help $ pgen template --help $ pgen exec --help
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:
- MkDocs (opens new window) using a theme (opens new window) provided by Read the Docs (opens new window).
- Markdown is generated by jsdoc-to-markdown (opens new window)
- For contribution please send pull requests with tests on GitHub (opens new window).
# BUG REPORTS
Without necessary information, it is hard to impossible to debug every error for every database.
Please include details below in your bug reports.
pg-generatorand PostgreSQL version,
- DDL (Database creation script),
pgencommands you executed,
- JS code you executed if it is a runtime bug,
- Error message.
Send bug reports and feature requests to GitHub Issues (opens new window).