Skip to main content

Database migration system for Python/SQLAlchemy projects

Project description

DBWarden

DBWarden is a database migration system for Python/SQLAlchemy projects.

Installation

pip install dbwarden

Configuration

Create .env in your project:

DBWARDEN_SQLALCHEMY_URL=postgresql://user:pass@localhost/db
DBWARDEN_ASYNC=false  # or true for async mode

Basic Commands

Command Description
dbwarden init Initialize migrations directory
dbwarden make-migrations "name" Generate SQL from SQLAlchemy models
dbwarden migrate Apply pending migrations
dbwarden migrate --verbose Apply with detailed logging
dbwarden rollback Revert the last migration
dbwarden history Show migration history
dbwarden status Show current status
dbwarden mode Show sync/async mode
dbwarden check-db Inspect DB schema
dbwarden diff Show models vs DB differences

SQLAlchemy Models

DBWarden automatically detects models in models/:

# models/user.py
from sqlalchemy import Column, Integer, String
from sqlalchemy.orm import declarative_base

Base = declarative_base()

class User(Base):
    __tablename__ = "users"
    id = Column(Integer, primary_key=True)
    name = Column(String(100))
    email = Column(String(255), unique=True)

Complete Example

# 1. Initialize
dbwarden init

# 2. Create models in models/

# 3. Generate migration from models
dbwarden make-migrations "create users table"

# 4. Apply
dbwarden migrate --verbose

# 5. View history
dbwarden history

Environment Variables

Variable Description
DBWARDEN_SQLALCHEMY_URL DB connection URL
DBWARDEN_ASYNC Async mode (true/false)
DBWARDEN_MODEL_PATHS Paths to SQLAlchemy models

Supported Databases

  • PostgreSQL (sync + async)
  • SQLite (sync + async)
  • MySQL (sync)

Docs

For more information, see DBWarden Docs

License

This Project is Licensed under the MIT License. See LICENSE

Project details


Download files

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

Source Distribution

dbwarden-0.1.1.tar.gz (62.9 kB view details)

Uploaded Source

Built Distribution

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

dbwarden-0.1.1-py3-none-any.whl (37.0 kB view details)

Uploaded Python 3

File details

Details for the file dbwarden-0.1.1.tar.gz.

File metadata

  • Download URL: dbwarden-0.1.1.tar.gz
  • Upload date:
  • Size: 62.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.7

File hashes

Hashes for dbwarden-0.1.1.tar.gz
Algorithm Hash digest
SHA256 26e7e2e487f95f8d0c9c716c5e83a39a0ccd8a86a306d35aac1fbd2674cafc7a
MD5 7bb2f5bb08c02be4883a38c889489fc6
BLAKE2b-256 5df90c4ca5e9ba60db2a86e6d97682023ed474349bc7e8b4f88639848eb6b6f5

See more details on using hashes here.

File details

Details for the file dbwarden-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: dbwarden-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 37.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.7

File hashes

Hashes for dbwarden-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b6efc44f88f2cb5bb69922fcc4a13aaf409fae60b54178de346a71c7895ebc97
MD5 fadac38a018a59b024abe29f7669df9c
BLAKE2b-256 9892f5c3abdd817b3d69e598be1531ac5684267e8527a1553dc72a6919969120

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page