flask-migrate库的使用(代码片段)

sgatbl sgatbl     2023-02-22     633

关键词:

在使用flask-SQLAlchemy库的时候,经常苦恼于该库的creat_all()方法不能对项目中的新建库进行修改,drop_all()又会对数据进行删除,这非常的不方便,万幸,Flask-SQLAlchemy的开发者同时开发了flask-migrate库,用于数据库的迁移。本文为windows环境。

安装

pip install flask-migrate

通过pip安装,就能完成。

使用方法

在进行迁移操作以前,我们需要现在程序中进行初始化操作:

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_script import Manager
from flask_migrate import Migrate

app = Flask(__name__)
...

db = SQLAlchemy(app)
migrate = Migrate(app, db)

实例化Migrate类,除了要传入程序实例app,还需要传入实例化Flask-SQLAlchemy提供的SQLAlchemy类创建的db对象作为第二个参数。然后就可以开始数据库迁移操作了。

step1:创建迁移环境

flask db init

如果显示无该指令,可以使用:

python -m flask db init

通过这种方式,就可以在本地项目的根目录下创建一个migrations文件夹,该文件夹中包含了自动生成的配置文件和迁移脚本文件夹。ps:python -m是python中用来执行外部命令的方式,本文下面部分的内容如果出现相同情况,都可以通过添加该语句来解决。migrations文件夹如下所示:

技术分享图片

 

step2:生成迁移脚本

使用migrate子命令可以自动生成迁移脚本

如果你在项目中添加了多个表,那么使用如下命令生成迁移脚本:

flask db migrate

执行这条命令以后,Alembic会检测出数据库及模型的变化,如下所示:

技术分享图片

如果你只是单一的数据表发生字段的添加,那么你只需要这样:

flask db migrate -m "add 表名 字段名"

这种方式,可以实现对单一数据库表字段的添加操作,结果与上述方法类似,就不添加图片了。

step3:★更新数据库

这一步很关键,如果说,step2虽然检测到了数据库的变化,但是,并没有对原数据库进行任何改变,这还需要对数据库的更新操作,有点儿类似于项目中对数据库的增删改,可以保证数据库的一致性。

flask db upgrade

通过该指令,就可以实现数据库中未创建库和表的创建;如果已经创建了,则会在不损坏数据的前提下执行更新。结果如下所示:

技术分享图片

以上就完成了对数据库迁移操作的简单介绍,非常的方便。

附上Alembic文档了解更多用法和自定义选项

flask-migrate(代码片段)

...,之后重新运行‘db.reate_all‘才会重新映射,为此可使用flask-Migrate来解决这一问题。它可以在每次修改模型后,可将修改后的模型映 查看详情

flask-migrate使用(代码片段)

...只能生成和删除表,不能对已经存在的表进行操作。通过flask-migrate可以对已经存在的表字段进行修改1、安装:依赖于flask-script,所以需要安装它pipinstallflask-migrate2、使用方法  1)导入    app和db,分别是flask对象和SQLAlche... 查看详情

flask-migrate(代码片段)

终于到了Flask-Migrate,之前在看Flask-SQLAlchemy的时候,Flask支持makemigration/migrate吗?答案在这里该诉你,如果你同时拥有两个三方组件Flask-Script和Flask-Migrate那么就支持这样的动作安装Flask-MigratepipinstallFlask-Migrate将Flask-Migrate加入到Flask项目... 查看详情

flask扩展flask-migrate的使用(代码片段)

📋个人简介💖作者简介:大家好,我是阿牛,全栈领域新星创作者。😜🎉支持我:点赞👍+收藏⭐️+留言📝📣系列专栏:flask框架快速入门🍁💬格言:要成为光... 查看详情

flask-migrate(代码片段)

...在这里该诉你,如果你同时拥有两个三方组件Flask-Script和Flask-Migrate那么就支持这样的操作 Flask-Script的安装与使用可参考之前的博客内容一、安装Flask-Migratepip3installFlask-Migrate二、将Flask-Migrate加入到Flask项目中PS:注意了Flask-Migrat... 查看详情

python9:注册flask-migrate(代码片段)

查看详情

flask学习-15.flask-migrate数据迁移(代码片段)

...段,比如对表新增字段,修改字段的时候需用到flask-migrate插件来同步迁移数据。flask-migrate迁移数据django框架里面可以用migrate命令进行数据库的同步,Flask框架有个fl 查看详情

flask-migrate(代码片段)

终于到了Flask-Migrate,之前在学习Flask-SQLAlchemy的时候,有的同学就提过类似的问题,Flask支持makemigration/migrate吗?答案在这里该诉你,如果你同时拥有两个三方组件Flask-Script和Flask-Migrate那么就支持这样的动作首先你要有几个准备工作第... 查看详情

flask-migrate(代码片段)

1.安装Flask-Migrate1pipinstallFlask-Migrate2.将Flask-Migrate加入到Flask项目中- PS:注意了Flask-Migrate是要依赖Flask-Script组件的1importMyApp2#导入Flask-Script中的Manager3fromflask_scriptimportManager45#导入Flask-Migrate中的Migrate和MigrateCommand6#这两个东西说... 查看详情

flask-script&flask-migrate(代码片段)

Flask-Script详解先使用venvScriptsactivate激活环境Flask-Script的作用是通过命令行的形式来操作Flask。列如通过命令跑一个开发版本的服务器、设置数据库,定时任务等要使用Flask-Script。首先看一个最简单的列子+manage.py+fromflask_scriptimport... 查看详情

flaskflask-migrate基本使用(代码片段)

...果有一个工具能专门做这种事情,就显得非常有用了,而flask-migrate就是做这个事情的。flask-migrate是基于Alembic进行的一个封装,并集成到Flask中,而所有的迁移操作其实都是Alembi 查看详情

flask项目中数据库迁移的使用(代码片段)

...的变化,然后把变动应用到数据库中。在Flask中可以使用Flask-Migrate扩展,来实现数据迁移。并且集成到Flask-Script中,所有操作通过命令就能完成。为了导出数据库迁移命令,Flask-Migrate提供了一 查看详情

flask之数据库迁徙(代码片段)

...的变化,然后把变动应用到数据库中。在Flask中可以使用Flask-Migrate扩展,来实现数据迁移。并且集成到Flask-Script中,所有操作通过命令就能完成。为了导出数据库迁移命令,Flask-Migrate提 查看详情

nump库的基本使用(代码片段)

Nump库的基本使用?库的导入PyCharmfile-Setting-Projectinterpreter-+-(Searhwhatyouneed)-InstallPackage?多维数组importnumpyasnpa=np.array([[1,2,3],[4,5,6],[7,8,9]])print(a)print("-------------")a[1,1]=10print 查看详情

markdownjs库的三种使用方式(代码片段)

查看详情

静态库的制作和使用(代码片段)

静态库的创建和使用 1>.命名规则 lib+库的名字+.a 例子:libmytest.a 2>.制作步骤 a.生成对应的.o文件【.c-->.o】 b.将生成的.a文件打包 arrcs+静态库的名字【libmytest.a】+生成的所有的.o 3>.发布和使用静态库 a.发... 查看详情

textgogo-config库的使用笔记(代码片段)

查看详情

windows下静态动态库的封装和使用(图解)(代码片段)

文章目录静、动态库的封装和使用库的基本概念windows下静态库创建和使用静态库的创建静态库的使用方法一:配置项目属性方法二:使用编译语句方法三:添加工程中静态库优缺点windows下动态库创建和使用动态库的... 查看详情