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!
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
Quick Start 🏃♂️¶
Installation¶
Initialize Your Project¶
This creates a jetbase/ directory with:
- A
migrations/folder for your SQL files - An
env.pyconfiguration file
Configure Your Database¶
Edit jetbase/env.py with your database connection string (currently support for postgres, sqlite, and snowflake):
Create Your First Migration¶
This creates a new SQL file like V20251225.120000__create_users_and_items_tables.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¶
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:
You can also use another compatible driver if you prefer (such as asyncpg, pg8000, etc.).
Next Steps¶
- 📖 Getting Started Guide — More detailed setup instructions
- 🛠️ Commands Reference — Learn all available commands
- 📝 Writing Migrations — Best practices for migration files
- ⚙️ Configuration — Customize Jetbase for your needs
Supported Databases¶
Jetbase currently supports:
- ✅ PostgreSQL
- ✅ SQLite
- ✅ Snowflake