Skip to content

Latest commit

 

History

History
54 lines (41 loc) · 1.56 KB

readme.md

File metadata and controls

54 lines (41 loc) · 1.56 KB

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

Cargo

cargo install jab

Manual (requires rust)

git clone [email protected]: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