alembic使用
前言
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 config.config import mysql_Base
target_metadata = [mysql_Base.metadata]
初始化alembic
alembic revision --autogenerate -m 'init'
然后我们查看数据库发现多了一个 alembic 的表

大功告成!
提交model修改
提交model的步骤是(每次)
alembic revision --autogenerate -m '提交说明'
alembic upgrade head
然后我们发现数据库多了Model定义的表

其他操作
alembic支持数据库版本的回滚等,相当于 git
但是我个人认为没什么必要
另外,alembic的版本信息在 alembic 的 versions 文件夹中

alembic使用的更多相关文章
- Alembic
Layers of the Library: AbcA(low) --> Abc --> AbcGeom(high) Container Hierarchy in Alembic ...
- flask-admin章节三:数据库迁移工具 alembic初步使用
1. 概述 基于flask框架构建web,一般会使用sqlchemy(在flask中使用sqlchemy可以参考这里)作为数据库引擎. 这样业务的逻辑就可以做到不跟具体的数据库类型相耦合,具体后端业务 ...
- flask开发restful api系列(3)--利用alembic进行数据库更改
上面两章,主要讲基本的配置,今天我们来做一个比较有趣的东西,为每个客户加一个头像图片.如果我们图片保存在自己的服务器,对于服务器要求有点高,每次下载的时候,都会阻塞网络接口,要是1000个人同时访问这 ...
- python alembic which comes from SQLalchemy
alembic it's tutorial: http://alembic.readthedocs.org/en/latest/tutorial.html
- 使用alembic进行数据库版本管理
前言 随着项目业务需求的不断变更,数据库的表结构修改难以避免,此时就需要对数据库的修改加以记录和控制,便于项目的版本管理和随意的升级和降级. Alembic就可以很好的解决这个问题.Alembic是S ...
- 4.alembic数据迁移工具
alembic是用来做ORM模型与数据库的迁移与映射.alembic使用方式跟git有点类似,表现在两个方面,第一个,alemibi的所有命令都是以alembic开头: 第二,alembic的迁移文件 ...
- Flask+SQLAlchemy+alembic+Flask-RESTful使用
前言 其实准备把这篇删掉,先写Flask-restful相关的,后来想想大体框架还是先写出来,这两天踩了很多坑,有的谷歌也没有答案.一直摸索也总算是开始了. 正文 SQLAlchemy/alembic ...
- Maya中输出alembic文件的方法
Maya中输出alembic文件是有现成api调用的,与maya中大部分api一样,这个功能参数的传入是非常类似mel的,本质上讲都是kwargs类型的参数,所以我们传入的参数就需要整理成类似于mel ...
- flask项目结构(四)使用sqlalchemy和alembic
简介 其实我不是啥正经人,错了,不是啥正经程序员,所能想到的估计也就码农一级吧,高级程序员,搞什么算法,什么人工智能,大数据计算…………离我还太遥远. 但是这并不妨碍我继续学习,继续写垃圾小程序. 反 ...
随机推荐
- Math的一些方法
Math.abs(数值) 把()内的值变为正数 Math.ceil(4.3) 向上取整 // 5 Math.floor(4.3) 向下取整 // 4 Math.round(4.3) 四舍五入取整 // ...
- 静态类(C#)
基本简介: 类可以声明为 static 的,以指示它仅包含静态成员.不能使用 new 关键字创建静态类的实例.静态类在加载包含该类的程序或命名空间时由 .NET Framework 公共语言运行库 ( ...
- Git—推送代码至Github
Git—上传代码至Github 首先得有个Github的账户,然后创建一个库. 然后找到指向改库的URL 第一次上传需要设置用户邮箱,打开git安装文件/bin下面找到git.bash并打开,设置全局 ...
- 3 数据分析之Numpy模块(2)
数组函数 通用元素级数组函数通用函数(即ufunc)是一种对ndarray中的数据执行元素级的运算.我们可以将其看做是简单的函数(接收一个或多个参数,返回一个或者多个返回值). 常用一元ufunc: ...
- Linux--主从复制
一 . mysql+centos7 mariadb mariadb其实是跟mysql是一样的,只不过是在centos7上叫做mariadb, 主要是因为mysql被甲骨文公司收购后,可能会有闭源的风险 ...
- CodeSmith如何生成实体类
CodeSmith如何生成实体类 这是模板,然后选择对应的表.就可以生成 了 <%-- Name: Database Table Properties Author: Paul Welter D ...
- 通过CONN_MAX_AGE优化Django的数据库连接
上周对我们用Django+Django-rest-framework提供的一套接口进行了压力测试.压测的过程中,收到DBA通知——数据库连接数过多,希望我们优化下程序.具体症状就是,如果设置mysql ...
- bootstrapValidator操作
1.html中表单初始化 <script> //表单验证初始化 $('#wx_pay_account_form_id').bootstrapValidator({ message : 'T ...
- vue 中 echart 在子组件中只显示一次的问题
问题描述 一次项目开发过程中,需要做一些图表,用的是百度开源的 echarts. vue推荐组件化开发,所以就把每个图表封装成子组件,然后在需要用到该图表的父组件中直接使用. 实际开发中,数据肯定都是 ...
- HDU2859 Phalanx (动态规划)
Today is army day, but the servicemen are busy with the phalanx for the celebration of the 60th anni ...