1.0.1 • Published 7 years ago

sequelize-generator-pg v1.0.1

Weekly downloads
3
License
MIT
Repository
github
Last release
7 years ago

sequelize-pg-generator

Generate Sequelize models from an existing PostgreSQL database.

This is mostly for personal use but it's pretty neat so here it is. It will generate models and associations as long as you use foreign keys correctly. For many-to-many, it requires a composite primary key foreign key-ing to the two join tables. Take a look at the post_category table in the example blog schema for inspiration.

I've used the raw output for several production applications, but it might require some modification for other more complex needs. It's still a decent baseline, though, if you want to just generate it once and then extend/modify the output to fit what you want.

Installation

npm install sequelize-pg-generator

Usage

This is a CLI executable. You can only run it from the command line. It can generate Typescript or JavaScript. Take a look in the ./example directory for what it will generate.

Example

node_modules/.bin/sequelize-pg-generator \
	--models-dir example/models \
	--relations-file example/relations \
	-h example.com \
	-U username \
	-p password \
	-d database \
	--typescript \
	--schema schema \
	--include-foreign-keys \
	--camel-case

Help

USAGE
  sequelize-pg-generator --host hostname --username username --dbname dbname --models-dir dir
    --relations-file file [--port port] [--password password] [--schema schema] 
    [--verbose] [--typescript] [--help] [--version] [--include-foreign-keys]

OPTIONS
  Postgres connection options:
    --dbname|-d dbname       The name of the database
    --host|-h hostname       The hostname of the database
    --password|-p password   The PostgreSQL password
    --port|-P port           The port the PostgreSQL server runs on
    --schema schema          The schema to model (public)
    --username|-U username   The username to connect to PostgreSQL
    
  Output options:
    --models-dir dir         Output generated models in this directory
    --relations-file file    Output relations to this file
    --typescript             Generate TypeScript instead of JavaScript
    --indent str             String to use for indentation (TAB)
    --include-foreign-keys   Include foreign key ID fields in table attributes
    --camel-case             Convert field names to camel case
  
  Other options:
    --help                   Show this help message
    --verbose|-v|-vv         Output debugging messages to stderr
    --version                Show the version of this program