node package manager


pg-migrate ===


Files in the specified directory are run in sequential order. Each filename has to start with a number and end with .sql. You can use any number of leading zeroes.

002-something else.sql

The script will write a file migrations.json in the directory to keep track of which migration scripts have already been run:

    "localhost/pgm": {
        "current": 3

The [host and pathname] portions of the database url are used to identify each database.

npm install -g pg-migrate

Run PostgreSQL migration scripts.
Usage: pg-migrate -u postgres://postgres@localhost/mydb
  -u, --url    database url  [required]
  -f, --from   from index    [default: 0]
  -t, --to     to index      [default: 1000]
  -d, --input  directory     [default: cwd]

When -f is omitted, it will default to the current number from the migrations.json file. If there is no state stored for the server, -f will default to 0.

Each migration script is run in a separate transaction. If a migration fails, the migration scripts that were run before are not aborted.

The specified directory is not traversed recursively. A recursive option would make this script more useful for a project with hundreds migrations, where it's impractical to store them all in one directory.

npm test