flask数据库迁移(简单分析Flask 数据库迁移详情)
大家好,今天小编来为大家解答flask数据库迁移这个问题,简单分析Flask 数据库迁移详情很多人还不知道,现在让我们一起来看看吧!
学生学Flask中超好用的扩展插件
Flask中超好用的5个扩展插件
1、Flask-Admin
Django中有个杀手锏的功能就是自带Admin面板,所有数据都可以通过Admin后台来操作Flask-Admin就是一个功能和Django-Admin非常类似的库,有了它你再也不需要直接去数据库查数据改数据了。
Github地址: https://github.com/flask-admin/flask-admin
2、Flask-SQLAlchemy
Flask-SQLAlchemy直接在SQLAlchemy的基础上封装了一层,简化了配置以及SQLAlchemy库的导入路径
3、Flask-Migrat
Flask-migrate是一个SQLAlchemy数据库升级迁移工具,基于Alembic实现,它提供了一系列命进行数据库升级撤回操作。
4、Flask-JWT-Extended
前后端分离项目基本都是使用JWT来做用户认证这是一个用来实现JWT功能的扩展,提供了很多配置参数,非常灵活,直接在config中配置就可以,省去很多造轮子的麻烦。
5、Flask-Limiter
Flask-Limiter用于做接口频率限制的,它可以灵活基于不同资源来限制请求的次数,例如你可以对整个app做限制,页可以对某个blueprint限制,或者是对路由做限制,还支持自定义配置。
简单分析Flask 数据库迁移详情
1、使用 Flask-Migrate实现数据库迁移
db.create_all()不会重新创建表或是更新表,需要先使用db.drop_all()删除数据库中所有的表之后再调用db.create_all()才能重新创建表,但是这样的话,原来表中的数据就都被删除了,这肯定是不行的,这时就出现了数据库迁移的概念。
在开发过程中,随着需求的变化,有可能需要添加或修改表的一些字段,但是原表中的数据不能删除,此时就需要创建新表,并将旧表中的数据迁移至新表中,Flask-Migrate这个扩展就可以在不破坏数据的情况下更新数据库表的结构,并完成数据从旧表到新表的迁移。
2、Flask-Migrate的使用
可以使用pip install flask-migrate进行安装。在程序中,我们实例化 Flask_Migrate提供的 Migrate类,进行初始化操作。
实例化 Migrate类,需要传入 Flask实例 app和 SQLAlchemy创建的实例 db。
2.1数据库的迁移过程
先定义 User模型类。
创建迁移环境
在开始迁移数据之前,需要先使用下面的命令创建一个迁移环境:
迁移环境只需创建一次,创建后会在项目根目录下生成一个 migrations目录,其中包含了自动生成的配置文件和迁移版本目录。
生成迁移脚本
使用如下命令自动生成迁移脚本:
-m选项添加备注信息,执行后迁移版本目录生成了迁移脚本。
迁移脚本内有两个函数:
upgrade():把迁移中的改动应用到数据库中
downgrade():将改动撤销
自动生成的迁移脚本会根据模型定义和数据库当前状态的差异,生成upgrade()和downgrade()函数的内容,不一定完全正确,有必要再进行检查一下。
更新数据库
生成了迁移脚本后,使用flask db upgrade命令可完成对数据库的更新。执行后即可生成数据库及表。
如果之后我们需要改动 user表中的字段,比如添加一个mobile字段,我们只需在 User模型类中添加该属性,之后执行flask db migrate-m'注释'和flask db upgrade命令即可。
如果想要回滚迁移的话,可以执行flask db downgrade命令。
3、总结
这里只是介绍如何在 Flask中进行数据库迁移,关于在生产环境下,是否需要使用迁移工具或者使用何种工具进行迁移,这里不做讨论,至于我的话,在生产环境中,我没有使用过Flask-Migrate,而是选择编写 SQL脚本来处理数据库及表的更新或改动,我觉得这样更不容易出错,其实各有各的好处,看自己选择。
大数据就业方向是什么
大数据的就业方向
大数据主要有三个就业方向,大数据系统研发类人才、大数据应用开发类人才和大数据分析类人才。
在此三大方向中,各自的基础岗位一般为大数据系统研发工程师、大数据应用开发工程师和数据分析师。又可分为以下十大职位:
一、ETL研发
ETL研发,主要负责将分散的、异构数据源中的数据如关系数据、平面数据文件等抽取到临时中间层后进行清洗、转换、集成,最后加载到数据仓库或数据集市中,成为联机分析处理、数据挖掘的基础。
二、Hadoop开发
Hadoop的核心是HDFS和MapReduce.HDFS提供了海量数据的存储,MapReduce提供了对数据的计算。随着数据集规模不断增大,而传统BI的数据处理成本过高,企业对Hadoop及相关的廉价数据处理技术如Hive、HBase、MapReduce、Pig等的需求将持续增长。
三、可视化(前端展现)工具开发
可视化开发就是在可视开发工具提供的图形用户界面上,通过操作界面元素,由可视开发工具自动生成应用软件。还可轻松跨越多个资源和层次连接您的所有数据,经过时间考验,完全可扩展的,功能丰富全面的可视化组件库为开发人员提供了功能完整并且简单易用的组件集合,以用来构建极其丰富的用户界面。
四、信息架构开发
大数据重新激发了主数据管理的热潮。充分开发利用企业数据并支持决策需要非常专业的技能。信息架构师必须了解如何定义和存档关键元素,确保以最有效的方式进行数据管理和利用。信息架构师的关键技能包括主数据管理、业务知识和数据建模等。
五、数据仓库研究
数据仓库的专家熟悉Teradata、Neteeza和Exadata等公司的大数据一体机。能够在这些一体机上完成数据集成、管理和性能优化等工作。
六、OLAP开发
OLAP在线联机分析开发者,负责将数据从关系型或非关系型数据源中抽取出来建立模型,然后创建数据访问的用户界面,提供高性能的预定义查询功能。
七、数据科学研究
数据科学家是分析师、艺术家的合体,需要具备多种交叉科学和商业技能。
八、数据预测(数据挖掘)分析
营销部门经常使用预测分析预测用户行为或锁定目标用户。预测分析开发者有些场景看上有有些类似数据科学家,即在企业历史数据的基础上通过假设来测试阈值并预测未来的表现。
九、企业数据管理
企业要提高数据质量必须考虑进行数据管理,并需要为此设立数据管家职位,这一职位的人员需要能够利用各种技术工具汇集企业周围的大量数据,并将数据清洗和规范化,将数据导入数据仓库中,成为一个可用的版本。然后,通过报表和分析技术,数据被切片、切块,并交付给成千上万的人。担当数据管家的人,需要保证市场数据的完整性,准确性,唯一性,真实性和不冗余。
十、数据安全研究
数据安全这一职位,主要负责企业内部大型服务器、存储、数据安全管理工作,并对网络、信息安全项目进行规划、设计和实施。数据安全研究员还需要具有较强的管理经验,具备运维管理方面的知识和能力,对企业传统业务有较深刻的理解,才能确保企业数据安全做到一丝不漏。
OK,本文到此结束,希望对大家有所帮助。