Flask-Migrate是一个为Flask应用处理SQLAlchemy数据库迁移的扩展,使得可以通过Flask的命令行接口或者Flask-Scripts对数据库进行操作。

安装

pip3 install Flask-Migrate

例子:test.py

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///lrh.db' db = SQLAlchemy(app)
migrate = Migrate(app, db) class User(db.Model):
__tablename__ = 'users'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(128))

上述代码指定数据库为lrh.db,如果不存在将新建;我们建立了User模型,指定它对应的在数据库中的名字为users,注意此时表还没有在建立。数据库需要指定,此代码也没有新建数据库app.db,如果URI中指定的数据库原先不存在,则没有app.db这个数据库存在。

使用flask命令运行上面的代码需要先设置环境变量FLASK_APP

export FLASK_APP=test.py       #注释:注意等号两边不能有空格

常用命令

初始化

flask db init

这个命令将会新建一个名字为migrations的文件夹,并且记录一个数据库版本号,一份保留在migrations中,一份保存在数据库中(新建一张名字为alembic_version的表来保存),值得注意大是新建了migrations文件夹后需要对数据库模型进行修改,然后使用flask-migrations进行迁移,这样才产生第一个版本号。

迁移

flask db migrate

迁移脚本最好仔细审查并且按需编写,因为Alembic(flask-migrate的核心)不会检测模型所有大变化,可以参考这个链接,查看Alembic的限制。如果不修改将使用默认策略迁移。

升级
flask db upgrade

每次数据库模型变化,需要重复使用migrate命令和upgrade命令(按顺序组合使用),使用成功后将修改版本号。

帮助

flask db --help

使用这个命令查看更多命令。

在flask中使用flask-migrate管理数据库的更多相关文章

  1. Flask中使用Flask-Migrate扩展迁移数据库

    安装Flask-Migrate插件 (venv) $ pip install flask-migrate 注意到虚拟环境中(因为Flask环境就安装在虚拟环境中) 安装flask-script使pyt ...

  2. flask中的Flask、request、render_temple、redirect和url_for

    学flask也有一个多星期了,对这个web框架也有了一点的了解,梳理一些基础的知识点,还是小白一只,代码写得比较low,若文章有错误的地方欢迎大佬随时指正,代码中被注释掉的代码是关于预防csrf,无视 ...

  3. Flyway:Spring Boot中使用Flyway来管理数据库版本

    Flyway简介 Flyway是一个简单开源数据库版本控制器(约定大于配置),主要提供migrate.clean.info.validate.baseline.repair等命令.它支持SQL(PL/ ...

  4. Spring Boot中使用Flyway来管理数据库版本

    flyway是一个开源的数据库迁移工具.类似于数据库的版本控制工具.flyway的数据库修改文件默认放在resource下的db.migration文件夹中,以V{version_number}__{ ...

  5. Flask中的ORM使用

    前言 ORM拓展 安装 数据库设置 使用 关系 单表操作 建表 应用表结构 CRUD 添加查找操作 更新操作 删除操作 一对多 多对多 总结 前言 最近几天接触了一下Flask,在惊叹于其简洁性的同时 ...

  6. python 全栈开发,Day142(flask标准目录结构, flask使用SQLAlchemy,flask离线脚本,flask多app应用,flask-script,flask-migrate,pipreqs)

    昨日内容回顾 1. 简述flask上下文管理 - threading.local - 偏函数 - 栈 2. 原生SQL和ORM有什么优缺点? 开发效率: ORM > 原生SQL 执行效率: 原生 ...

  7. Spring Boot 2.x基础教程:使用Flyway管理数据库版本

    之前已经介绍了很多在Spring Boot中使用MySQL的案例,包含了Spring Boot最原始的JdbcTemplate.Spring Data JPA以及我们国内最常用的MyBatis.同时, ...

  8. Python框架学习之Flask中的数据库操作

    数据库操作在web开发中扮演着一个很重要的角色,网站中很多重要的信息都需要保存到数据库中.如用户名.密码等等其他信息.Django框架是一个基于MVT思想的框架,也就是说他本身就已经封装了Model类 ...

  9. flask 使用Flask-SQLAlchemy管理数据库(连接数据库服务器、定义数据库模型、创建库和表)

    使用Flask-SQLAlchemy管理数据库 扩展Flask-SQLAlchemy集成了SQLAlchemy,它简化了连接数据库服务器.管理数据库操作会话等各种工作,让Flask中的数据处理体验变得 ...

随机推荐

  1. 织梦cms 内容模型 option下拉框 value 分离

    需要修改的文件在根目录include/customfields.func.php文件 foreach($items as $v) { $v = trim($v); if($v!='') { $myfo ...

  2. 用python复制文件夹

    用python复制文件 1. 根据文件夹的名称复制 需要复制的文件夹编号文件中,每一行表示一个编号,如下所示: > cat id.txt 1 2 3 ... > 目标文件的目录结构树如下所 ...

  3. JVM 之 Linux定位CPU过高问题及优化

    项目部署以后出行卡顿现象,所以对问题进行了排查,记录一下排查过程 (从CSDN编辑器贴过来的,图有水印) 1.找进程 top 可以发现,是Java进程导致的CPU过高,致使系统卡顿 2.找线程 ps ...

  4. Android学习笔记使用AlertDialog实现对话框

    使用AlertDialog可以实现如下对话框 案例 布局问文件就加了几个Button,我直接上Java代码了 实现显示带取消,确定按钮的对话框按钮 Button showDialogOne = fin ...

  5. MFC基于CAsyncSocket套接字客户端代码示范

    MFC基于CAsyncSocket套接字客户端代码示范 https://blog.csdn.net/txwtech/article/details/93016190

  6. S7-1200视频教程: S7-1200的功能与特点-跟我做 - 2/112

    S7-1200视频教程: S7-1200的功能与特点-跟我做 - 2/112 观看连接: http://www.elearning.siemens.com.cn/video/Course/201105 ...

  7. webpack简单笔记

    本文简单记录学习webpack3.0的笔记,已备日后查阅.节省查阅文档时间 安装 可以使用npm安装 //全局安装 npm install -g webpack //安装到项目目录 npm insta ...

  8. 三文搞懂学会Docker容器技术(下)

    接着上面一篇:三文搞懂学会Docker容器技术(上) 三文搞懂学会Docker容器技术(中) 7,Docker容器目录挂载 7.1 简介 容器目录挂载: 我们可以在创建容器的时候,将宿主机的目录与容器 ...

  9. css样式学习笔记

    视频参见php中文网玉女心经视频教程 讲解的相当的清楚和明白 第1章     :css快速入门 1.1     什么是css 改变html框架的样式. 1.2     css的三种引入形式 第一种形式 ...

  10. 【故障公告】阿里云 RDS 实例 CPU 100% 故障引发全站无法正常访问

    非常抱歉,今天凌晨 3:20~8:30 左右,我们使用的阿里云 RDS 实例 SQL Server 2016 标准版突然出现 CPU 100% 故障,造成全站无法正常访问,由此给您带来巨大的麻烦,请您 ...