Skip to content

PostgreSQL Storage

The PostgreSQL storage plugin uses a PostgreSQL database to store the migration history (duh). In the same package you can find the PostgreSQL Loader and the PostgreSQL Generator.

Installation

Terminal window
npm install @emigrate/postgres

Configuration

The PostgreSQL storage can be configured either using environment variables or by configuring the plugin directly in the emigrate.config.js file.

Configuration file

emigrate.config.js
import { createPostgresStorage } from '@emigrate/postgres';
export default {
storage: createPostgresStorage({
table: 'migrations',
connection: { ... },
}),
};

Options

table

type: string default: "migrations"

The name of the table to use for storing the migrations.

connection (required)

type: object | string

The connection options to use for connecting to the PostgreSQL database. This can either be a connection URI or an object with connection options. For a list of supported connection options, see the postgres documentation.

Environment variables

The following environment variables are supported:

VariableDescriptionDefault
POSTGRES_TABLEThe name of the table to use for storing the migrations"migrations"
POSTGRES_URLThe full URI for connecting to a PostgreSQL database, e.g: "postgres://user:pass@127.0.0.1:3306/database"
POSTGRES_HOSTThe host on which the PostgreSQL server instance is running"localhost"
POSTGRES_USERThe PostgreSQL user account to use for the authentication
POSTGRES_PASSWORDThe PostgreSQL user password to use for the authentication
POSTGRES_PORTThe network port on which the PostgreSQL server is listening5432
POSTGRES_DBThe PostgreSQL database to use for the connection

The environment variables are used when the storage plugin is used using the --storage command line option:

Terminal window
npx emigrate list --storage postgres

Or when specifying the storage in the emigrate.config.js file as a string:

emigrate.config.js
export default {
storage: 'postgres',
};