Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

pg-formation

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

pg-formation

stateful schema migration for posgresql

  • 0.2.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

pg-formation

Node.js stateful database schema management tool built exclusively for postgres.

With many migration tools you specify the changes to your schema. With pg-formation you specify the final schema and pg-formation infers the changes.

Please check out the important caveats.

Installation

$ npm install pg-formation

Installing this module locally adds an executable file into your node_modules/.bin directory. Use node_modules/.bin/pg-formation to run the program if installed this way. You can use the -g option to npm to install globally and use pg-formation to run the program.

Usage

pg-formation [command]

Commands:
  pg-formation dump   - Dump the contents of an existing database
  pg-formation parse  - Parse the configuration and dump the normalized contents
  pg-formation show   - Show the statements needed to update the database
  pg-formation run    - Run the update statements and check the updated database

Options:
  --version              Show version number                           [boolean]
  -d, --database-url     database connection url                        [string]
  -t, --config-format    Output format for dump or override input format
                        [string] [choices: "js", "json", "yaml"] [default: "js"]
  -s, --database-schema  The schema to run the migration
                                                    [string] [default: "public"]
  -c, --config-file      File to load the schema
                                    [string] [default: "schema.@(js|json|yaml)"]
  -f, --function-file    Folder to load functions
                                  [string] [default: "plpgsql/**/*.@(sql|psql)"]
  --help                 Show help                                     [boolean]

If the --database-url option is not provided then the DATABASE_URL environment variable will be consulted. If both are missing the connection will be attempted assuming the environment is set up using the standard postgres environment variables.

The --config-file and --function-file options specify a glob pattern to search for schema definition and function files. For definition files you can specify json, yaml, or common.js files. All the configuration files will be loaded and merged, but it is an error to specify the same table, type, or function multiple times.

pg-formation dump

The dump command will scan the schema from the database and output the result to standard output. Use this method to bootstrap the process if there is an existing database schema. See the important caveats.

pg-formation parse

The parse command loads the configuration specified by the --config-file and --function-file options and normalizes the results. The normalized result is then dumped to stdout using the format specifed with the --config-format argument.

pg-formation show

The show commands shows the statements that would be run to update the database to the loaded configuration.

pg-formation run

The run command executes the statements required to update the databse to the loaded configuration. After the update the database is re-scanned to make sure it is consistent with the loaded configuration.

Caveats

This tool is currently alpha quality at best. Please consider carefully if you wish to use if for production deployments.

This tool only understands a subset of the possible postgres schemas. If you use this tool with an existing schema that is not understood then calamity is almost sure to follow.

Keywords

FAQs

Package last updated on 15 Sep 2020

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc