Skip to main content

一个独立于框架的烧瓶迁移分支。

项目描述

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 ...

下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

alembic-migrate-2.5.9.dev0.tar.gz (12.1 kB 图哈希)

已上传 source