iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Flask 数据库迁移详情
  • 954
分享到

Flask 数据库迁移详情

2024-04-02 19:04:59 954人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

目录1、使用 flask-Migrate 实现数据库迁移2、Flask-Migrate的使用2.1 数据库的迁移过程2.1.1 创建迁移环境2.1.2 生成迁移脚本2.1.3 更新数

1、使用 Flask-Migrate 实现数据库迁移

db.create_all()不会重新创建表或是更新表,需要先使用db.drop_all()删除数据库中所有的表之后再调用db.create_all()才能重新创建表,但是这样的话,原来表中的数据就都被删除了,这肯定是不行的,这时就出现了数据库迁移的概念。

开发过程中,随着需求的变化,有可能需要添加或修改表的一些字段,但是原表中的数据不能删除,此时就需要创建新表,并将旧表中的数据迁移至新表中,Flask-Migrate这个扩展就可以在不破坏数据的情况下更新数据库表的结构,并完成数据从旧表到新表的迁移。

2、Flask-Migrate的使用

可以使用pip install flask-migrate进行安装。在程序中,我们实例化 Flask_Migrate 提供的 Migrate 类,进行初始化操作。


from flask_migrate import Migrate

from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)

···

db = SQLAlchemy(app)

migrate = Migrate(app, db)

实例化 Migrate 类,需要传入 Flask 实例 app SQLAlchemy创建的实例 db。

2.1 数据库的迁移过程

先定义 User 模型类。


class User(db.Model):

    __tablename__ = 'user'

    id = db.Column(db.Integer, primary_key=True)

    user_name = db.Column(db.String)

    passWord = db.Column(db.String)

2.1.1 创建迁移环境

在开始迁移数据之前,需要先使用下面的命令创建一个迁移环境:


flask db init

迁移环境只需创建一次,创建后会在项目根目录下生成一个 migrations 目录,其中包含了自动生成的配置文件和迁移版本目录。

2.1.2 生成迁移脚本

使用如下命令自动生成迁移脚本:


flask db migrate -m "create_table"

-m 选项添加备注信息,执行后迁移版本目录生成了迁移脚本。

迁移脚本内有两个函数:

  • upgrade():把迁移中的改动应用到数据库中
  • downgrade():将改动撤销

自动生成的迁移脚本会根据模型定义和数据库当前状态的差异,生成upgrade()downgrade()函数的内容,不一定完全正确,有必要再进行检查一下。

2.1.3 更新数据库

生成了迁移脚本后,使用flask db upgrade命令可完成对数据库的更新。执行后即可生成数据库及表。

如果之后我们需要改动 user 表中的字段,比如添加一个mobile字段,我们只需在 User 模型类中添加该属性,之后执行flask db migrate -m '注释'和flask db upgrade命令即可。


class User(db.Model):

    __tablename__ = 'user'

    id = db.Column(db.Integer, primary_key=True)

    user_name = db.Column(db.String)

    password = db.Column(db.String)

    mobile = db.Column(db.String)

如果想要回滚迁移的话,可以执行flask db downgrade命令。

3、总结

这里只是介绍如何在 Flask 中进行数据库迁移,关于在生产环境下,是否需要使用迁移工具或者使用何种工具进行迁移,这里不做讨论,至于我的话,在生产环境中,我没有使用过Flask-Migrate,而是选择编写 SQL 脚本来处理数据库及表的更新或改动,我觉得这样更不容易出错,其实各有各的好处,看自己选择。

到此这篇关于 Flask 数据库迁移详情的文章就介绍到这了,更多相关 Flask 数据库迁移内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Flask 数据库迁移详情

本文链接: https://www.lsjlt.com/news/158468.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Flask 数据库迁移详情
    目录1、使用 Flask-Migrate 实现数据库迁移2、Flask-Migrate的使用2.1 数据库的迁移过程2.1.1 创建迁移环境2.1.2 生成迁移脚本2.1.3 更新数...
    99+
    2024-04-02
  • mysql数据库迁移
    目录 背景迁移数据库 背景 公司有个项目,刚开始数据量不是大的时候,数据库和服务上的所有应用数据都放在一个旧小盘中,随着项目数据的增长,旧的磁盘被占满了,导致系统无法写入数据,我和同事排查了很长时间,最终确定是磁盘被占满导致的一...
    99+
    2023-08-23
    数据库 mysql
  • Django切换数据库和迁移数据详解
    目录前言基本步骤导出报错解决方法导入过程出错解决报错1: Duplicate entry报错信息解决方法一: 重新导出数据解决方法二: 删除 content_type&nb...
    99+
    2022-11-16
    Django切换数据库 Django迁移数据 Django切换MySQL数据库
  • 阿里云数据库迁移步骤详解
    随着信息化的快速发展,企业对数据库的需求也在不断变化。有时,由于某种原因,企业可能需要将现有的数据库迁移到阿里云数据库。本文将详细介绍阿里云数据库迁移的步骤,希望能对您有所帮助。 一、准备阶段在开始迁移之前,需要对现有的数据库进行详细的了解...
    99+
    2023-11-10
    阿里 详解 步骤
  • postgresql数据库数据怎么迁移
    要迁移PostgreSQL数据库数据,可以使用以下几种方法: 使用pg_dump和pg_restore命令:可以使用pg_dump...
    99+
    2024-04-17
    postgresql
  • mysql数据库怎么迁移
    本篇内容主要讲解“mysql数据库怎么迁移”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mysql数据库怎么迁移”吧!上面是测试人员的要求,可以提取出2条有用的...
    99+
    2024-04-02
  • 使用EFCORE迁移数据库
    一、迁移需要的依赖 Install-Package Microsoft.EntityFrameworkCore.SqlServer -version 3.1.1 Install-Pa...
    99+
    2024-04-02
  • sqlserver数据库怎么迁移
    SQL Server数据库迁移可以通过以下几种方法进行: 使用SQL Server Management Studio (SSM...
    99+
    2024-04-12
    sqlserver
  • mysql迁移数据库到阿里云数据库
    简介 随着云计算的发展,越来越多的企业开始将传统数据库迁移到云端。阿里云数据库作为国内领先的云数据库服务提供商,提供了丰富的迁移方案,使得MySQL数据库迁移到阿里云数据库变得简单和高效。本文将介绍如何进行MySQL迁移数据库到阿里云数据库...
    99+
    2024-01-17
    数据库 阿里 mysql
  • 【数据库迁移系列】从MySQL到openGauss的数据库对象迁移实践
    在之前这一篇中我们分享过使用chameleon工具完成MySQL到openGauss的全量数据复制、实时在线复制。9.30新发布的openGauss 3.1.0版本 ,工具的全量迁移和增量迁移的性能不但有了全面提升,而且支持数据库对象视图、...
    99+
    2023-08-17
    数据库 mysql bash 云原生
  • mysql数据库迁移的方法
    mysql数据库迁移的方法:1、确定迁移需求;2、备份数据;3、恢复数据到新服务器;4、调整配置文件;5、迁移用户和权限。详细介绍:1、确定迁移需求,在开始迁移之前,需要明确迁移的目的和需求,这包括确定要迁移的数据库、目标平台和时间表;2、...
    99+
    2023-11-16
    数据库 mysql
  • 数据库迁移之mysql到达梦数据库
    1 背景介绍 由于业务需求要求数据库国产化,因此将数据从mysql数据库中迁移到国产达梦数据库中。将mysql中的每个库迁移到达梦不同模式下,下面为详细过程。 2 具体步骤 (1)安装达梦客户端工具 (2)点击选择DM管理工具 (3)创建...
    99+
    2023-08-20
    数据库
  • 如何迁移MySQL 5.7数据库
    这篇文章主要介绍如何迁移MySQL 5.7数据库,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!在源库用mysqldump备份数据库:mysqldump -uroot -p --def...
    99+
    2024-04-02
  • WindowsServer 2012数据库迁移分析
    本篇内容主要讲解“WindowsServer 2012数据库迁移分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“WindowsServer 2012数据库迁移...
    99+
    2024-04-02
  • PHP8.0中的数据迁移库:Phinx
    随着互联网技术的发展和应用范围的不断扩大,数据迁移变得越来越常见和重要。数据迁移是指将现有的数据库结构和数据移到不同环境或新的系统上的过程。数据迁移的过程中,可以包括从一个数据库引擎到另一个数据库引擎、从一个数据库版本到另一个数据库版本、不...
    99+
    2023-05-14
    PHP 数据迁移 Phinx
  • django数据库迁移migration实现
    在django中,ORM(对象关系映射器—object-relational mapper)任务是:模型化数据库,创建数据库由另外一个系统负责(迁移–migr...
    99+
    2024-04-02
  • Django数据库迁移报错InconsistentMigrationHistory
    Django在执行python manage.py makemigrations的时候一切正常 但是执行python manage.py migrate提示异常: raise I...
    99+
    2024-04-02
  • Laravel中数据库迁移操作的示例详解
    目录一:创建迁移二:迁移结构1:up方法2:down方法三:运行迁移四:迁移回滚五:回滚后迁移六:可用字段类型七:字段修饰八:修改字段九:删除字段十:索引长度 & Mysql...
    99+
    2023-02-09
    Laravel数据库迁移 Laravel数据库
  • mysql数据库迁移怎么操作
    MySQL数据库迁移的操作步骤如下:1.备份原数据库:在迁移前先备份原数据库,以防迁移过程中数据丢失。可以使用mysqldump命令...
    99+
    2023-06-10
    mysql数据库迁移 mysql数据库 数据库
  • 怎么迁移现有的数据库到Aurora数据库
    迁移现有的数据库到Aurora数据库可以通过以下步骤完成: 创建一个新的Aurora数据库实例:首先在控制台上创建一个新的Auro...
    99+
    2024-04-09
    Aurora 数据库
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作