前言

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使用的更多相关文章

  1. Alembic

    Layers of the Library:  AbcA(low)  -->  Abc  -->  AbcGeom(high) Container Hierarchy in Alembic ...

  2. flask-admin章节三:数据库迁移工具 alembic初步使用

    1. 概述 基于flask框架构建web,一般会使用sqlchemy(在flask中使用sqlchemy可以参考这里)作为数据库引擎. 这样业务的逻辑就可以做到不跟具体的数据库类型相耦合,具体后端业务 ...

  3. flask开发restful api系列(3)--利用alembic进行数据库更改

    上面两章,主要讲基本的配置,今天我们来做一个比较有趣的东西,为每个客户加一个头像图片.如果我们图片保存在自己的服务器,对于服务器要求有点高,每次下载的时候,都会阻塞网络接口,要是1000个人同时访问这 ...

  4. python alembic which comes from SQLalchemy

    alembic it's tutorial: http://alembic.readthedocs.org/en/latest/tutorial.html

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

    前言 随着项目业务需求的不断变更,数据库的表结构修改难以避免,此时就需要对数据库的修改加以记录和控制,便于项目的版本管理和随意的升级和降级. Alembic就可以很好的解决这个问题.Alembic是S ...

  6. 4.alembic数据迁移工具

    alembic是用来做ORM模型与数据库的迁移与映射.alembic使用方式跟git有点类似,表现在两个方面,第一个,alemibi的所有命令都是以alembic开头: 第二,alembic的迁移文件 ...

  7. Flask+SQLAlchemy+alembic+Flask-RESTful使用

    前言 其实准备把这篇删掉,先写Flask-restful相关的,后来想想大体框架还是先写出来,这两天踩了很多坑,有的谷歌也没有答案.一直摸索也总算是开始了. 正文 SQLAlchemy/alembic ...

  8. Maya中输出alembic文件的方法

    Maya中输出alembic文件是有现成api调用的,与maya中大部分api一样,这个功能参数的传入是非常类似mel的,本质上讲都是kwargs类型的参数,所以我们传入的参数就需要整理成类似于mel ...

  9. flask项目结构(四)使用sqlalchemy和alembic

    简介 其实我不是啥正经人,错了,不是啥正经程序员,所能想到的估计也就码农一级吧,高级程序员,搞什么算法,什么人工智能,大数据计算…………离我还太遥远. 但是这并不妨碍我继续学习,继续写垃圾小程序. 反 ...

随机推荐

  1. python部署lvs

    lvs-dr-rr import paramiko vip = '192.168.254.250' ds = '192.168.254.17' rs1 = '192.168.254.37' rs2 = ...

  2. 控制结构(4): 局部化(localization)

    // 上一篇:状态机(state machine) // 下一篇:必经之地(using) 基于语言提供的基本控制结构,更好地组织和表达程序,需要良好的控制结构. 前情回顾 上一次,我们说到状态机结构( ...

  3. 【学习总结】GirlsInAI ML-diary day-17-初始dataframe

    [学习总结]GirlsInAI ML-diary 总 原博github链接-day17 认识dataframe 一种非常有用的数据类型,叫做"DataFrame",经常缩写为&qu ...

  4. CodeForces Round #544 Div.3

    A. Middle of the Contest 代码: #include <bits/stdc++.h> using namespace std; int h1, m1, h2, m2; ...

  5. jdk 动态代理的原理

    一.代理设计模式 代理设计模式是Java常用的设计模式之一. 特点: 01.委托类和代理类有共同的接口或者父类: 02.代理类负责为委托类处理消息,并将消息转发给委托类: 03.委托类和代理类对象通常 ...

  6. npm ERR! code ENOENT

    npm ERR! path F:\VsCodeWorkspace\labWeb\front\LabWebAdminFrontEnd\node_modules\core-jsnpm ERR! code ...

  7. 建立ftp服务器的网址

    https://jingyan.baidu.com/article/574c5219d466c36c8d9dc138.html

  8. Django 视图系统

    Django 视图系统 概念 一个视图函数,简称视图,是一个简单的Python函数,用于接受Web请求并返回Web响应. 通常将视图函数写在project或app目录中的名为views.py文件中 简 ...

  9. rsync实时同步服务部署

    部署rsync服务 一.需求:把客户端文件同步到服务端指定位置服务端:备份服务器为 172.16.3.164客户端:推送服务器为 172.16.3.94 二.基础知识: rsync 分为服务器端.客户 ...

  10. MySQL 创建、删除、显示数据库、数据表

    1 创建.删除.显示数据库 -- 创建数据库 create database student_db character set utf8 collate utf8_general_ci; -- 删除数 ...