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 templatealembic-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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Hashes for alembic-migrate-2.5.8.dev0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1eacc956eb382e8bda16edc028fabe8d8f0410a0b3c59493bedb254804e0f108 |
|
MD5 | e00c44ae815bb77fe1854d2b90974029 |
|
BLAKE2b-256 | 946c1048d6d276c9ad2d358b4e165b3c6ccbdff6d92b1d3b2df7426f9299b4e1 |