数据库迁移工具——Alembic
2025-5-18
| 2025-5-18
字数 754阅读时长 2 分钟
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.Configalembic.command 模块将 Alembic 集成到代码中,例如:

    总结

    Alembic 是一个功能强大的数据库迁移工具,通过简单的命令和脚本,可以方便地管理数据库的版本变化,非常适合与 SQLAlchemy 结合使用。
  • 运维
  • 数据库
  • 在服务器上使用Docker Compose部署n8n一文了解npm、yarn、pnpm和npx
    Loading...