extract-pg-schema
v5.1.3
Published
Reads various metadata from your postgres database and return a Javascript object. This package is used by [Kanel](https://github.com/kristiandupont/kanel) to generate Typescript types and [Schemalint](https://github.com/kristiandupont/schemalint) to prov
Downloads
127,333
Readme
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.