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
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0b68eac007c8ea855b8e78312936ac9433600881b14d0c8428a059e5fab45aa5 |
|
MD5 | b96c99fb88a6ab7328faa6a5653da763 |
|
BLAKE2b-256 | 7dc1a1994c61ecc693816a4eceeab722a491ddcf8f96db9616ac6e2cd7de2d20 |