目录
首发于:
最近更新于:
分类: archived

alembic模块有什么,如果读者熟悉django的话,那么可以将其类比为django里面的makemigrations和migrate相关的命令,简单来说,其管理数据库版本,进行数据库迁移工作。随着我们对于数据库操作的使用频繁,我相信读者就会开始慢慢感受到数据库迁移管理的必要性,实际上我相信读者会从一开始不愿意将这些东西加入代码版本控制,到后来开始主动要将其加入代码版本控制。

更多关于alembic的使用请参看官方文档,下面就一些基本的使用概念说一下。

基本使用

初始化alembic项目

alembic init alembic

然后当前目录下会多一个 alembic.ini 文件,这个配置文件里面有很多重要的配置,其中 sqlalchemy.url 是必配的。

根据models.py来

类似于django的 models.py 文件里面定义一些模型,我们利用sqlalchemy模块也可以定义一些模型文件,然后根据这个模型文件的定义,我们可以利用alembic来自动根据你的数据库的一些更改:

alembic revision --autogenerate -m "add_some_key"

你需要定义好 alembic 文件下的 env.py 里面的 target_metadata 这个变量:

from myapp.models import Base
target_metadata = Base.metadata

然后其会自动生成一些版本控制的py文件,有 upgrade 和 downgrade 操作。

升级

alembic upgrade head  # head是最新的版本,你也可以指定版本号

你也可以管理多个模型文件,多个表格对象,更多细节请参看官方文档,后面有时间本文也会详细补充之。 TODO。