一个独立于框架的烧瓶迁移分支。
项目描述
alembic-迁移
alembic-migrate 是 flask-migrate 的一个独立于框架的分支。
安装
要安装,运行pip install alembic-migrate
用法
创建以下文件结构:
model/
├── __init__.py
├── base.py
├── book.py
然后在model/base.py.
注意:连接字符串不需要匹配您应用的数据库连接,它仅用于迁移。
# model/base.py
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
def get_base():
return {'base': Base, 'sqlalchemy_url': 'sqlite:///demo.db'}
让我们添加一个模型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)
现在cd ..让您脱离模型包并运行:
alembic-db init设置模板alembic-db migrate创建迁移
您还可以查看此 repo 中的示例文件夹。
配置基本模块
基本模块包含get_base() -> dict. 默认情况下model.base使用,但您可以更改环境变量:
export ALEMBIC_BASE="my_model.base"
自定义模型导入逻辑
默认情况下,*.py将加载与 base 相同的包中的所有文件。但是,如果您想将模型拆分为子包或具有自定义逻辑,则应import_models在基本模块中实现。
def import_models():
from . import car, book
from .sub import other_models
def get_base():
return ...