Skip to main content

A framework-independent fork of flask-migrate.

Project description

alembic-migrate

alembic-migrate is a framework-independent fork of flask-migrate.

Installation

To install, run pip install alembic-migrate

Usage

Create the following file structure:

model/
  ├── __init__.py
  ├── base.py
  ├── book.py 

Then declare your SQLAlchemy Base and connection string in model/base.py. Note: the connection string doesn't need to match your app's DB connection, it's only used for migrations.

# model/base.py
from sqlalchemy.ext.declarative import declarative_base

Base = declarative_base()

def get_base():
    return {'base': Base, 'sqlalchemy_url': 'sqlite:///demo.db'}

Let's add a model in model/book.py:

from .base import Base
from sqlalchemy import Integer, String, Column

class Book(Base):
    __tablename__ = 'books'
    name = Column(String, primary_key=True)
    year = Column(Integer)

Now cd .. so that you are out of the model package and run:

  • alembic-db init to setup the template
  • alembic-db migrate to create a migration

You can also check out the example folder in this repo.

Configuring base module

The base module contains get_base() -> dict. By default model.base is used but you can change the environment variable:

export ALEMBIC_BASE="my_model.base"

Customize model import logic

By default, all *.py files in the same package as the base will be loaded. However if you want to split your models in subpackages or have custom logic you should implement import_models inside your base module.

def import_models():
   from . import car, book
   from .sub import other_models

def get_base():
    return ...

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

alembic-migrate-2.5.9.dev0.tar.gz (12.1 kB view details)

Uploaded Source

File details

Details for the file alembic-migrate-2.5.9.dev0.tar.gz.

File metadata

  • Download URL: alembic-migrate-2.5.9.dev0.tar.gz
  • Upload date:
  • Size: 12.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/39.1.0 requests-toolbelt/0.9.1 tqdm/4.23.4 CPython/3.6.4

File hashes

Hashes for alembic-migrate-2.5.9.dev0.tar.gz
Algorithm Hash digest
SHA256 0b68eac007c8ea855b8e78312936ac9433600881b14d0c8428a059e5fab45aa5
MD5 b96c99fb88a6ab7328faa6a5653da763
BLAKE2b-256 7dc1a1994c61ecc693816a4eceeab722a491ddcf8f96db9616ac6e2cd7de2d20

See more details on using hashes here.

Supported by

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