npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

pg-partisan

v0.2.2

Published

Partisan - CLI migration tool for PostgreSQL

Downloads

7

Readme

pg-partisan

Partisan (pg-partisan in npm) is CLI migration tool for NodeJS and PostgreSQL

Features

  • Easy to install and use
  • Creates and executes raw SQL files
  • Sets up from the environment
  • Only two commands: create and migrate
  • Wraps every migration into a transaction block by default
  • Console output is colored, yay!

Install

You can install it globally via npm:

$ npm install --global pg-partisan
$ partisan create my_awesome_migration

Or use it as dependency of your project:

$ npm install --save pg-partisan
$ ./node_modules/.bin/partisan create new_migration_123

Use

There are only two commands partisan accepts:

partisan create [migration_name]

Creates new SQL file inside migrations folder (see options). If folder does not exist it creates one.

partisan migrate | partisan up

Look through migrations folder and find not yet applied files, then apply them one by one within a transaction. Yeah, it only supports up-migrations. But have you ever used down ones?

Configuration:

All partisan configuration is taken from environment, no config files.

Connection

For PostgreSQL connection options partisan uses default PostgreSQL env variables:

$ export PGUSER=postgres
$ export PGDATABASE=mydb
$ export PGPASSWORD=postgres
$ export PGPORT=5432

All of them are also described in brianc/node-postgres repository.

Partisan options

Partisan supports following env settings (values in examples are default):

# Migration directory (relative to script execution path or absolute)
$ export PARTISAN_MIGRATIONS_PATH=migrations

# Table name (better with schema) where migrations data is stored
$ export PARTISAN_MIGRATIONS_TABLE_NAME=public.migrations

# Whether to use transactions (true|false)
$ export PARTISAN_USE_TRANSACTIONS=true

Examples of usage and output

$ partisan create create_db_schema
[Thu, 01 Jan 1970 00:00:00 GMT] Trying to create migration...
[Thu, 01 Jan 1970 00:00:00 GMT] Migration path does not exist, creating...
[Thu, 01 Jan 1970 00:00:00 GMT] Migration directory created
[Thu, 01 Jan 1970 00:00:00 GMT] Successfully created new migration 1970_01_01_000000_setup_db_schema
$ PARTISAN_USE_TRANSACTIONS=false partisan migrate
[Thu, 01 Jan 1970 00:00:00 GMT] Migrating...
[Thu, 01 Jan 1970 00:00:00 GMT] Applying migration 1970_01_01_000000_setup_db_schema
[Thu, 01 Jan 1970 00:00:00 GMT] Migration 1970_01_01_000000_setup_db_schema successfully applied
[Thu, 01 Jan 1970 00:00:00 GMT] No more migrations, exiting

For developers

Feel free to open issues or suggest pull requests. Haven't tested it well yet so any help is appreciated.

If you find it boring to look through 400 lines of code you can generate docs for it locally:

$ npm run generate-docs
$ google-chrome doc/index.html # if chrome installed