Skip to main content

Welcome to Jetbase 🚀

Jetbase is a simple, lightweight database migration tool for Python projects.

Jetbase helps you manage database migrations in a simple, version-controlled way. Whether you're adding a new table, modifying columns, or need to undo a change, Jetbase makes it super easy!


Created and maintained by Jaz 🛠️


Key Features ✨

  • 📦 Simple Setup — Get started with just one command
  • ⬆️ Easy Upgrades — Apply pending migrations with confidence
  • ⬇️ Safe Rollbacks — Made a mistake? No problem, roll it back!
  • 📊 Clear Status — Always know which migrations have been applied and which are pending
  • 🔒 Migration Locking — Prevents conflicts when multiple processes try to migrate
  • ✅ Checksum Validation — Detects if migration files have been modified
  • 🔄 Repeatable Migrations — Support for migrations that run on every upgrade

📚 Full Documentation

Quick Start 🏃‍♂️

Installation

Using pip:

pip install jetbase

Using uv:

uv add jetbase

Note for Snowflake, Databricks, and ClickHouse Users:
To use Jetbase with Snowflake, Databricks, or ClickHouse, install the appropriate extras:

pip install "jetbase[snowflake]"
pip install "jetbase[databricks]"
pip install "jetbase[clickhouse]"

Initialize Your Project

jetbase init
cd jetbase

This creates a jetbase/ directory with:

  • A migrations/ folder for your SQL files
  • An env.py configuration file

Configure Your Database

Edit jetbase/env.py with your database connection string (currently support for PostgreSQL, SQLite, Snowflake, Databricks, MySQL, ClickHouse):

PostgreSQL example:

sqlalchemy_url = "postgresql+psycopg2://user:password@localhost:5432/mydb"

SQLite example:

sqlalchemy_url = "sqlite:///mydb.db"

Create Your First Migration

jetbase new "create users table" -v 1

This creates a new SQL file called V1__create_users_table.sql.

Tip:
You can also create migrations manually by adding SQL files in the jetbase/migrations directory, using the V<version>__<description>.sql naming convention (e.g., V1__add_users_table.sql, V2.4__add_users_table.sql).

Write Your Migration

Open the newly created file and add your SQL:

-- upgrade
CREATE TABLE users (
    id SERIAL PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    email VARCHAR(255) UNIQUE NOT NULL
);

CREATE TABLE items (
    id SERIAL PRIMARY KEY,
    name VARCHAR(100) NOT NULL
);

-- rollback
DROP TABLE items;
DROP TABLE users;

Apply the Migration

jetbase upgrade

That's it! Your database is now up to date. 🎉

Note:
Jetbase uses SQLAlchemy under the hood to manage database connections.
For any database other than SQLite, you must install the appropriate Python database driver.
For example, to use Jetbase with PostgreSQL:

pip install psycopg2

You can also use another compatible driver if you prefer (such as asyncpg, pg8000, etc.).

Supported Databases

Jetbase currently supports:

  • ✅ PostgreSQL
  • ✅ SQLite
  • ✅ Snowflake
  • ✅ Databricks
  • ✅ MySQL
  • ✅ ClickHouse

Need Help?

Open an issue on GitHub!

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jetbase-0.18.1.tar.gz (186.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

jetbase-0.18.1-py3-none-any.whl (57.4 kB view details)

Uploaded Python 3

File details

Details for the file jetbase-0.18.1.tar.gz.

File metadata

  • Download URL: jetbase-0.18.1.tar.gz
  • Upload date:
  • Size: 186.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for jetbase-0.18.1.tar.gz
Algorithm Hash digest
SHA256 cbd05f227cf6d0e43c7f76a82119172610146750be913cbd8cba7ea8c9a8e250
MD5 e8406fa79784626288ef273c8013bdae
BLAKE2b-256 c6e6db8bc5699c53cd1a198622b5dfb72b7d33132f195630a00ac8a2507622fb

See more details on using hashes here.

Provenance

The following attestation bundles were made for jetbase-0.18.1.tar.gz:

Publisher: publish.yml on jetbase-hq/jetbase

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file jetbase-0.18.1-py3-none-any.whl.

File metadata

  • Download URL: jetbase-0.18.1-py3-none-any.whl
  • Upload date:
  • Size: 57.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for jetbase-0.18.1-py3-none-any.whl
Algorithm Hash digest
SHA256 3086bc2b57e7e6a5f3a858b3eb0d926620bcf9a137296982d466c395d7bd8b3e
MD5 4fdbc9b87aaf726484ea6bf89e3bbe5a
BLAKE2b-256 7cbb2517b0c8feadacd57e51339a038d8ff70103e9ee809956d9a203e8cb2289

See more details on using hashes here.

Provenance

The following attestation bundles were made for jetbase-0.18.1-py3-none-any.whl:

Publisher: publish.yml on jetbase-hq/jetbase

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.18.1 This release

2 files

0.18.0

2 files

0.17.3

2 files

0.17.2

2 files

0.17.1

2 files

0.17.0

2 files

0.16.0

2 files

0.15.1

2 files

0.15.0

2 files

0.14.0

2 files

0.13.0

2 files

0.12.2

2 files

0.12.1

2 files

0.12.0

2 files

0.11.0

2 files

0.10.0

2 files

0.9.0

2 files

0.8.1

2 files

0.8.0

2 files

0.7.0

2 files

0.6.1

2 files

0.6.0

2 files

0.5.1

2 files

0.5.0

2 files

0.4.0

2 files

0.3.0

2 files

0.2.2

2 files

0.2.1

2 files

0.2.0

2 files

0.1.0

2 files

0.0.1

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page