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.
- 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).
cargo install jab
git clone git@github.com:sendyhalim/jab.git
make install
Dynamically linked binaries are only available for macos and linux. Go here.
# 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