https://github.com/urbica/pg-migrate
PostgreSQL migration tool
https://github.com/urbica/pg-migrate
database migration migrations nodejs postgresql
Last synced: 10 months ago
JSON representation
PostgreSQL migration tool
- Host: GitHub
- URL: https://github.com/urbica/pg-migrate
- Owner: urbica
- License: mit
- Created: 2017-07-31T16:53:13.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2023-11-29T14:08:21.000Z (over 2 years ago)
- Last Synced: 2025-08-08T23:50:00.679Z (11 months ago)
- Topics: database, migration, migrations, nodejs, postgresql
- Language: JavaScript
- Homepage: https://urbica.github.io/pg-migrate
- Size: 2.98 MB
- Stars: 47
- Watchers: 5
- Forks: 4
- Open Issues: 13
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# Urbica PG Migrate
[](https://www.npmjs.com/package/@urbica/pg-migrate)
[](https://www.npmjs.com/package/@urbica/pg-migrate)
[](https://github.com/urbica/pg-migrate/actions)
PostgreSQL migration tool.
[Documentation](https://urbica.github.io/pg-migrate/).

## Installation
`pg-migrate` requires node v7.6.0 or higher for ES2015 and async function support.
```shell
npm install -g @urbica/pg-migrate
```
...or build from source
```shell
git clone https://github.com/urbica/pg-migrate.git
cd pg-migrate
npm install
```
## Usage
```shell
Usage:
pg-migrate [options] new
pg-migrate [options] migrate
pg-migrate [options] rollback
pg-migrate [options] reset
pg-migrate --help
pg-migrate --version
Examples:
pg-migrate new create-users
pg-migrate migrate
pg-migrate rollback 1
pg-migrate reset
Options:
--help Show this screen
--version Show version
--verbose Show verbose output
-m --migrations-dir=DIR The directory containing your migration files [default: ./migrations]
-t --migrations-table=TABLE Set the name of the migrations table [default: migrations]
-s --migrations-schema=SCHEMA Set the name of the migrations table scheme [default: public]
Connection options:
-c --connection=DATABASE_URL database connection string in libpq format
-d --db=PGDATABASE database name to connect to
-h --host=PGHOST database server host or socket directory [default: localhost]
-p --port=PGPORT database server port [default: 5432]
-U --user=PGUSER database user name
-W --password=PGPASSWORD database user name password
```
## Node.js API
Using Promises
```js
const PgMigrate = require('@urbica/pg-migrate');
const pgMigrate = new PgMigrate({
database: 'test',
migrationsDir: './migrations'
});
pgMigrate
.connect()
.then(() => pgMigrate.migrate())
.then(() => pgMigrate.end());
```
...or using async/await
```js
const pgMigrate = new PgMigrate({ database, user, migrationsDir });
async function migrate() {
await pgMigrate.connect();
await pgMigrate.migrate();
await pgMigrate.end();
}
migrate();
```
See [API](https://urbica.github.io/pg-migrate/) for more info.