码迷,mamicode.com
首页 > 其他好文 > 详细

alembic使用

时间:2019-02-27 20:38:11      阅读:308      评论:0      收藏:0      [点我收藏+]

标签:支持   托管   window   get   oge   name   website   否则   粘贴   

前言

alembic是SQLAlchemy作者编写的控制 model 版本的模块,配合SQLAlchemy使用更佳

正文

安装

pip install alembic

alembic是可以在DOS中执行的模块,因此如在Linux执行需要注意指定alembic的位置

编写 model

这个我在上一篇博客中有介绍

初始化

以 windows 为例,我们进入项目的根目录,输入

alembic init alembic

然后我们发现在根目录里多个几个文件

技术图片

技术图片

文件夹打开后是

技术图片

连接数据库

我们托管model需要连接数据库

在 alembic.ini 文件中修改

sqlalchemy.url = 数据库连接(直接粘贴SQLAlchemy中的即可)

其他都不用改

指定托管的 model

修改 alembic 的 env.py 文件

target_metadata = None

import sys                                             
from os.path import abspath, dirname                   
sys.path.append(dirname(dirname(abspath(__file__))))  # 将项目路径引入
from app.website.models import Base as bs1  # 多个model则每一个引入,引入按照我这个来一直引到Base(否则报错),因每个Model都有Base所以我们起别名
target_metadata = [bs1.metadata]  # 多个Base可用列表方式全部写进去,[bs1.metadata, bs2.metadata, ...]

初始化alembic

alembic revision --autogenerate -m init

然后我们查看数据库发现多了一个 alembic 的表

技术图片

大功告成!

提交model修改

提交model的步骤是(每次)

alembic revision --autogenerate -m 提交说明
alembic upgrade head

然后我们发现数据库多了Model定义的表

技术图片

其他操作

alembic支持数据库版本的回滚等,相当于 git

但是我个人认为没什么必要

另外,alembic的版本信息在 alembic 的 versions 文件夹中

技术图片

 

alembic使用

标签:支持   托管   window   get   oge   name   website   否则   粘贴   

原文地址:https://www.cnblogs.com/chnmig/p/10446346.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!