Alembic

Posted fengqiang626

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Alembic相关的知识,希望对你有一定的参考价值。

Alembic 如何使用?

数据库版本化

? 通常我们会将我们的代码放入到某个VCS(版本控制系统)中,进行可追溯的版本管理。一个项目除了代码,通常还会有一个数据库,这个数据库可能会随着项目的演进发生变化,甚至需要可以回滚到过去的某个状态,于是一些工具将数据库的版本化也纳入了管理。

? 在之前的数据库操作中,我们新增一个字段是不是每次都得删除数据库表,然后再重新将新创建的数据库表映射到数据库中。这样操作是不是很蛋疼?是吧?于是Sqlalchemy作者拜尔为了解决这一问题,开发了Alembic这一迁移工具。

Alembic 作用:

方便数据库与ORM模型的迁移与映射。

Alembic 安装:

pip install alembic

初始化

alembic init YOUR_ALEMBIC_DIR
‘‘‘
随后你的项目目录应该会新增一个alembic.ini文件以及一个YOUR_ALEMBIC_DIR目录,最好指定一个符合自己项目风格的命名。
‘‘‘

接下来的操作都是围绕这个目录

  • alembic.ini 提供了一些基本的配置
  • env.py 每次执行Alembic都会加载这个模块,主要提供项目Sqlalchemy Model 的连接
  • script.py.mako 迁移脚本生成模版
  • versions 存放生成的迁移脚本目录
‘‘‘
yourproject/
    alembic.ini
    YOUR_ALEMBIC_DIR/
        env.py
        README
        script.py.mako
        versions/
‘‘‘

你需要编辑alembic.ini文件去指定Alembic的数据库连接

sqlalchemy.url = mysql+pymysql://root:admin@localhost/alembic_demo
# 注:和数据库连接信息一样

找到env.py文件,修改target_metadata参数

import os
import sys
import alembic_demo

# 把当前项目路径加入到path中
sys.path.append(os.path.dirname(os.path.dirname(__file__)))

target_metadata = alembic_demo.Base.metadata

创建数据库迁移文件,命令如下:

alembic revision --autogenerate -m "first commit"

创建成功会在version目录下创建一个迁移文件。

将迁移文件映射到数据库中,命令如下:

alembic upgrade head

OK,数据库表已成功映射到数据库中。

步骤很多,但只要你多敲几遍,你就会熟悉掌握alembic的用法。当然,如果你实在记不住,再看看我的这篇博文。

以上是关于Alembic的主要内容,如果未能解决你的问题,请参考以下文章

使用alembic进行数据库版本管理

使用alembic进行数据库版本管理

4.alembic数据迁移工具

flask数据库之alembic的使用

flask使用alembic,进行数据库结构管理,升级,加表,加项

Postgres 和 alembic - 假设 SERIAL 序列