Skip to content

kristiandupont/extract-pg-schema

Repository files navigation

Extract Schema from Postgres Database

Reads various metadata from your postgres database and return a Javascript object. This package is used by Kanel to generate Typescript types and Schemalint to provide linting of database schemas.

View the documentation here

Installation

npm i extract-pg-schema

Library Usage

You give it a postgres connection config object and some options and it will connect to your database and generate

const { extractSchemas } = require('extract-pg-schema');

async function run() {
  const connection = {
    host: 'localhost',
    database: 'postgres',
    user: 'postgres',
    password: 'postgres',
  };

  const result = await extractSchemas(connection);

  console.log(result);
}

run();

For an example of a generated object, take a look at dvdrental.json file which is generated from the sample Database from PostgreSQLTutorial.com.

CLI Usage

You can also use the CLI to extract the schemas from a database and write it to the console or a file in JSON format.

npx extract-pg-schema -h localhost -p 5432 -U postgres -d postgres > schemas.json

The CLI takes a small subset of the options that pg_dump takes. You can also use the environment variables starting with PG to set the connection parameters.

Usage: extract-pg-schema [options] [DBNAME]

Extract all schemas from a PostgreSQL database and print them as JSON.

Options:
    --help                      show this help
    -h, --host=HOSTNAME         database server host or socket directory
    -p, --port=PORT             database server port
    -U, --username=USERNAME     database user name
    -d, --dbname=DBNAME         database name to connect to
    -n, --schema=SCHEMA         include schema regular expression (may be given multiple times)
    -N, --exclude-schema=SCHEMA exclude schema regular expression (may be given multiple times)

Contributors

Made with contrib.rocks.