@sdelements/flan


flan

A tasty tool that lets you save, load and share postgres snapshots with ease.

oclif Version Downloads/week License

Usage

$ npm install -g @sdelements/flan $ flan init
running setup... $ flan save mydb@1.0.0
saving... $ flan load mydb@1.0.0
loading... $ flan publish mydb@1.0.0
publishing... $ flan available
available snapshots... $ flan (-v|--version|version)
@sdelements/flan/0.1.0-alpha.0 darwin-x64 node-v14.16.1 $ flan --help [COMMAND]
USAGE
 $ flan COMMAND
...

Under the hood flan is a convenient wrapper for pgdump and pgrestore. It uses parallel jobs by default to ensure dumping/restoring your database is quick.

Sharing database dumps is achieved by leveraging git. Essentially you push a tag to a repository of your choosing (defined in flan.config.js) and others can then pull it with flan fetch. We chose to use git because it fits well with our internal tooling and process but we understand it may not be the best solution for you. Pull requests are welcome if you're interested in using S3/Azure/etc as a store 🙂

⚠️ WARNING: Please don't use flan in situations where you can't afford data loss.

Commands

display autocomplete installation instructions

USAGE $ flan autocomplete [SHELL] ARGUMENTS SHELL shell type OPTIONS -r, --refresh-cache Refresh cache (ignores displaying instructions) EXAMPLES $ flan autocomplete $ flan autocomplete bash $ flan autocomplete zsh $ flan autocomplete --refresh-cache

See code: @oclif/plugin-autocomplete

flan available

lists available dumps

USAGE $ flan available OPTIONS -c, --config=config [default: ./flan.config.json] Path to configuration file -x, --extended show extra columns --columns=columns only show provided columns (comma-separated) --csv output is csv format [alias: --output=csv] --filter=filter filter property by partial string matching, ex: name=foo --no-header hide table header from output --no-truncate do not truncate output to fit screen --output=csv|json|yaml output in a more machine friendly format --sort=sort [default: tag] property to sort by (prepend '-' for descending) EXAMPLE $ flan available

See code: src/commands/available.ts

flan delete DELETEFILE

delete a local database dump

USAGE $ flan delete DELETEFILE ARGUMENTS DELETEFILE name of file to delete OPTIONS -c, --config=config [default: ./flan.config.json] Path to configuration file EXAMPLES $ flan delete myDB $ flan delete myDB@1.0.0

See code: src/commands/delete.ts

flan fetch FILE

fetch specified dump file from a remote repository

USAGE $ flan fetch FILE ARGUMENTS FILE name of the file OPTIONS -c, --config=config [default: ./flan.config.json] Path to configuration file EXAMPLE $ flan fetch filename

See code: src/commands/fetch.ts

flan help [COMMAND]

display help for flan

USAGE $ flan help [COMMAND] ARGUMENTS COMMAND command to show help for OPTIONS --all see all commands in CLI

See code: @oclif/plugin-help

flan init

Initializes flan for this project

USAGE $ flan init OPTIONS -c, --config=config [default: ./flan.config.json] Path to configuration file EXAMPLES $ flan init Config file found at home/flan.config.js $ flan init A config file will be created, continue? [y/n] $ flan init -c /some-folder/flan.config.json Config file found at home/flan/some-folder/flan.config.json

See code: src/commands/init.ts

flan list

lists available dumps

USAGE $ flan list OPTIONS -c, --config=config [default: ./flan.config.json] Path to configuration file EXAMPLE $ flan list

See code: src/commands/list.ts

flan load INPUT

load database from dump

USAGE $ flan load INPUT ARGUMENTS INPUT name of input file OPTIONS -c, --config=config [default: ./flan.config.json] Path to configuration file EXAMPLE $ flan load myDB

See code: src/commands/load.ts

flan publish FILE

publish specified dump file to a remote repository

USAGE $ flan publish FILE ARGUMENTS FILE name of the file OPTIONS -c, --config=config [default: ./flan.config.json] Path to configuration file EXAMPLE $ flan publish filename

See code: src/commands/publish.ts

flan save OUTPUT

save current database to dump

USAGE $ flan save OUTPUT ARGUMENTS OUTPUT name of output file OPTIONS -c, --config=config [default: ./flan.config.json] Path to configuration file EXAMPLE $ flan save myDB

See code: src/commands/save.ts

flan unpublish FILE

unpublish specified database dump from a remote repository

USAGE $ flan unpublish FILE ARGUMENTS FILE name of the file OPTIONS -c, --config=config [default: ./flan.config.json] Path to configuration file EXAMPLE $ flan unpublish myDB@1.0.0

See code: src/commands/unpublish.ts

From Toronto with love ❤️

👩‍🍳 🥧 👨‍🍳 🥧 👩‍🍳 🥧 👨‍🍳 🥧 👨‍🍳
Built by Team Pie
Special thanks to @revangel for the logo