#developer-tools #database #state-management #cli

bin+lib jab

JAB is a database state management tool, think of it as git but for database. You can commit your current db state and checkout to your previous db state.

1 unstable release

0.0.1 Mar 19, 2020

#27 in #developer-tools

MIT license

32KB
850 lines

Jab

jab is a database state management tool, think of it as git but for database. You can commit your current db state and checkout to your previous db state.

Crates.io Crates.io

📠 Notes

  • Currently only supports postgres.
  • This project only works if you have ON DELETE CASCADE on every FK constraints otherwise we can't do clean restore (hopefully this will change in the future).

🔩 Installation

Manual (requires rust)

git clone git@github.com:sendyhalim/jab.git

make install

Download

Dynamically linked binaries are only available for macos and linux. Go here.

🎮 Usage

# First create project.
# Currently only supports postgres.
# ------------------------------------------
jab project create awesomestuff --database-uri="username:password@localhost:5433"

# Start commiting your db
# ------------------------------------------
jab project commit awesomestuff --message "my first commit"

# See log
# ------------------------------------------
jab project log awesomestuff

# Restore your db to the latest commit
# ------------------------------------------
jab project restore awesomestuff

# Restore your db to a specific commit
# ------------------------------------------
jab project restore awesomestuff [optional-hash]


# List of available projects
# ------------------------------------------
jab project list

Dependencies

~12–22MB
~379K SLoC