跳转到主要内容

将Alembic与Flask集成。

项目描述

Flask-Alembic

Flask-Alembic是一个Flask扩展,它提供了一个可配置的Alembic数据库迁移环境。支持Flask-SQLAlchemyFlask-SQLAlchemy-Lite或纯SQLAlchemy。支持Alembic的单数据库和多数据库模板。

Pallets社区生态系统

[!重要]
此项目是Pallets社区生态系统的一部分。Pallets是维护Flask的开源组织;Pallets-Eco使社区能够维护Flask扩展。如果您有兴趣帮助维护此项目,请通过Pallets Discord服务器联系。

基本用法

您已创建了一个Flask应用程序和一些Flask-SQLAlchemy模型。现在开始使用Flask-Alembic

from flask_alembic import Alembic

# Intialize the extension
alembic = Alembic()
alembic.init_app(app)

命令已添加到flask CLI

$ flask db --help
$ flask db revision "making changes"
$ flask db upgrade

您还可以从Python访问Alembic的功能

with app.app_context():
    # Auto-generate a migration
    alembic.revision('making changes')

    # Upgrade the database
    alembic.upgrade()

    # Access the internals
    environment_context = alembic.env

Alembic的差异

  • 配置是从Flask.config而不是从alembic.inienv.py获取的。
  • 如果可用,则从Flask-SQLAlchemy(-Lite)获取引擎和模型/表元数据,或者可以手动配置。
  • 迁移存储在 migrations 文件夹中,而不是 versions 文件夹。
  • 提供迁移环境,而不是 env.py,并暴露 Alembic 的内部 API 对象。
  • 区分 CLI 命令和 Python 函数。函数返回修订对象,不输出到 stdout。
  • 允许在应用程序运行时通过公开的对象和函数在任何 API 级别操作 Alembic。
  • 添加了管理独立迁移分支的系统,使与命名分支一起工作更加容易。
  • (目前)不支持离线迁移。我不打算在此处进行工作,但对补丁持开放态度。
  • (目前)不支持异步引擎。我不打算在此处进行工作,但对补丁持开放态度。

项目详细信息


下载文件

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

源分布

flask_alembic-3.1.1.tar.gz (11.9 kB 查看哈希)

上传时间

构建分布

flask_alembic-3.1.1-py3-none-any.whl (12.1 kB 查看哈希)

上传时间 Python 3

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面