mirror of
https://github.com/PaiGramTeam/PamGram.git
synced 2024-11-21 05:41:43 +00:00
.. | ||
versions | ||
env.py | ||
README.md | ||
script.py.mako |
alembic 目录
说明
该目录包含 SQLAlchemy 数据库版本管理工具 alembic 的迁移脚本(migrations)。
这里数据库版本指的是本项目的数据库表结构,并不是 MySQL 版本。
常用功能
1. 升级版本
拉取代码以后,如果发现有新的 alembic/versions/xxxxxxx.py
,执行命令进行数据库迁移。
# 检查将要执行的 SQL
alembic upgrade head --sql
# 执行升级 SQL
alembic upgrade head
2. 创建一个迁移版本(自动)
新增或修改 Model 以后运行下面的命令,alembic 将自动比较 model 定义和本地数据库的差异,然后创建一个新的迁移脚本
# 举例:新增 Model
class User(SQLModel, table=True):
__table_args__ = dict(mysql_charset='utf8mb4', mysql_collate="utf8mb4_general_ci")
id: int = Field(primary_key=True)
name: str = Field()
# 引号内是本次迁移的名字,类似 git commit message 请保持可读性
alembic revision --autogenerate -m "add_xxx_to_xxx_table"
创建以后,可以使用 black
或其他工具格式化迁移脚本,然后执行升级
3. 创建一个迁移版本(手动)
手动写迁移脚本,一般用于修改数据的情况,比如新增了一个字段,需要从其他表把数据读到新字段里。
alembic revision -m "add_xxx_to_xxx_table"
通常情况下,如果上线后升级版本出错,不建议使用数据库降级命令,数据库降级难以管理,建议另外写一个迁移脚本进行手动降级