前言#

有关 Alembic 项目的信息。

项目主页#

Alembic 托管在 GitHub 上,网址为 sqlalchemy/alembic,隶属于 SQLAlchemy 组织。

发行版和项目状态可在 Pypi 上获取,网址为 https://pypi.python.org/pypi/alembic

此文档的最新发布版本应位于 https://alembic.sqlalchemy.org.cn

安装#

虽然 Alembic 可以系统范围安装,但更常见的是将其安装在 虚拟环境 中,因为它还使用更适合本地安装的库,如 SQLAlchemy 和数据库驱动程序。

以下文档是为项目安装 Alembic 的一种方法;还有很多方法。以下文档仅为尚未选择特定项目设置的用户提供。

要为特定项目构建虚拟环境,我们首先假设系统范围内已安装Python virtualenv。然后

$ cd /path/to/your/project
$ virtualenv .venv

现在有一个 Python 解释器,您可以在 /path/to/your/project/.venv/bin/python 中访问,以及 /path/to/your/project/.venv/bin/pip 中的 pip 安装程序工具。

我们现在按如下方式安装 Alembic

$ /path/to/your/project/.venv/bin/pip install alembic

安装将把 alembic 命令添加到虚拟环境。然后,在该特定虚拟环境中使用 Alembic 的所有操作都将通过使用此命令进行,例如

$ /path/to/your/project/.venv/bin/alembic init alembic

下一步是可选的。如果我们的项目本身有 setup.py 文件,我们也可以在 可编辑模式 下将其安装在本地虚拟环境中

$ /path/to/your/project/.venv/bin/pip install -e .

如果我们不“安装”本地项目,那也没关系;默认 alembic.ini 文件包含一个指令 prepend_sys_path = .,以便本地路径也在 sys.path 中。这允许我们在该目录中运行 alembic 命令行工具,而无需在该环境中“安装”我们的项目。

作为最后一步,可以使用 virtualenv activate 工具,以便在当前 shell 的上下文中使用 alembic 命令,而无需任何路径信息

$ source /path/to/your/project/.venv/bin/activate

依赖项#

除了其他依赖项之外,Alembic 的安装过程将确保安装 SQLAlchemy。Alembic 将与 1.3.0 版本及更高版本的 SQLAlchemy 协同工作。

在 1.5.0 版本中更改:不再支持低于 1.3.0 版本的 SQLAlchemy。

Alembic 支持 3.8 及更高版本 的 Python

在 1.13 版本中更改:Alembic 现在支持 Python 3.8 及更高版本。

版本控制方案#

Alembic 的版本控制方案基于 SQLAlchemy 的版本控制方案。特别是,需要注意的是,虽然 Alembic 使用的是三位数版本控制方案,但它不使用 SemVer。在 SQLAlchemy 和 Alembic 的方案中,中间数字被认为是“重大次要版本”,它可能包括移除以前已弃用的 API,在极少数情况下可能会存在不向后兼容的风险

这意味着版本“1.8.0”、“1.9.0”、“1.10.0”、“1.11.0”等是重大次要版本,它将包括新的 API 功能,并可能移除或修改现有功能。

因此,在 固定 Alembic 版本时,请固定到“主版本”和“次要版本”数字,以避免 API 更改。

真正的“主版本”版本(例如更改为“2.0”)将包括基础功能的完整重新设计/重新架构;目前尚未计划此类一系列更改,尽管诸如使用新方法替换整个“自动生成”方案之类的更改有资格达到该更改级别。

社区#

Alembic 由 Mike Bayer 开发,并且是 SQLAlchemy 项目的一部分。

用户问题、潜在 bug 和功能的讨论最容易使用 GitHub 讨论 进行讨论。

错误#

Alembic 的错误和功能增强应报告到 GitHub 问题跟踪器