type
status
date
slug
summary
tags
category
icon
password
Alembic 是一个轻量级的数据库迁移工具,主要用于 Python 项目中与 SQLAlchemy 配合使用,帮助开发者管理数据库的版本变化。
以下是 Alembic 的基本使用介绍:
1. 安装 Alembic
在项目中安装 Alembic,可以使用 pip 命令:
2. 初始化 Alembic
在项目的根目录下运行以下命令来初始化 Alembic:
这会在项目中创建一个名为
alembic
的目录,其中包含配置文件 alembic.ini
和一个 versions
文件夹,用于存放迁移脚本。3. 配置 Alembic
编辑
alembic.ini
文件,主要修改以下内容:- sqlalchemy.url:配置数据库连接字符串,例如:
- 如果使用 SQLite,可以写成:
- 如果使用Mysql或者MariaDB,可以写成:
mysql+pymysql
:指定使用 MySQL 数据库,并通过pymysql
作为数据库驱动。
<username>
:数据库用户名。
<password>
:数据库密码。
<host>
:数据库服务器的主机名或 IP 地址。
<dbname>
:要连接的数据库名称。
4. 创建迁移脚本
运行以下命令来创建一个新的迁移脚本:
m
参数用于添加迁移描述,例如:
这会在
versions
文件夹中生成一个 Python 脚本文件,文件名以时间戳开头,例如 abcdef123456_add_users_table.py
。5. 编辑迁移脚本
打开生成的迁移脚本文件,编辑
upgrade()
和 downgrade()
函数:upgrade()
:定义如何将数据库从旧版本升级到新版本。
downgrade()
:定义如何将数据库从新版本降级到旧版本。
例如,添加一个名为
users
的表:6. 应用迁移
运行以下命令将迁移应用到数据库:
head
表示应用所有未应用的迁移。也可以指定版本号来应用到特定版本。7. 查看迁移历史
运行以下命令查看迁移历史:
它会列出所有迁移脚本及其版本号、描述等信息。
8. 回滚迁移
如果需要回滚迁移,可以运行以下命令:
1
表示回滚到上一个版本。也可以指定版本号来回滚到特定版本。
9. 集成到项目中
在项目中,可以通过
alembic.config.Config
和 alembic.command
模块将 Alembic 集成到代码中,例如:总结
Alembic 是一个功能强大的数据库迁移工具,通过简单的命令和脚本,可以方便地管理数据库的版本变化,非常适合与 SQLAlchemy 结合使用。