Flask学习笔记(3)-数据库迁移

简介: 数据库迁移通过创建虚拟flask环境来迁移数据库。一、创建虚拟环境virtualenvwrapper库中有个mkvirtualenv函数,用来创建虚拟环境(make virtual envirement)。

数据库迁移

通过创建虚拟flask环境来迁移数据库。

一、创建虚拟环境

virtualenvwrapper库中有个mkvirtualenv函数,用来创建虚拟环境(make virtual envirement)。使用命令

mkvirtualenv flask-tutorial --python=python3.6

创建一个名为flask-tutorial的虚拟环境,如图
pic
可利用workon flask-tutorial命令激活这个虚拟环境。使用deactivate退出这个虚拟环境。在默认条件下,虚拟环境不包含任何库。因此需要重新安装。

pip install flask flask-login flask-sqlalchemy mysql-connector-python

接着通过pip freeze查看库,将会看到:

-f /usr/share/pip-wheels
click==6.7
Flask==0.12.2
Flask-Login==0.4.0
Flask-SQLAlchemy==2.3.2
itsdangerous==0.24
Jinja2==2.9.6
MarkupSafe==1.0
mysql-connector-python==2.0.4
SQLAlchemy==1.1.14
Werkzeug==0.12.2

使用pip freeze > requirements.txt来生成requirements.txt这个文件。注意删除第一行的-f /usr/share/pip-wheels再git。

二、安装Flask数据库迁移扩展Flask-Migrate

使用pip install Flask-Migrate安装这个扩展。

from flask_migrate import Migrate 
migrate = Migrate(app, db)

在flask_app.py添加以上代码启用Migrate。

三、创建一个迁移将要进行的目录,

命令:

export FLASK_APP=flask_app.py
flask db init

然后创建一个新的数据库,替换掉flask_app.py里面的旧数据库。保存但不要运行。命令行输入flask db migrate之后,再将刚刚的改动改回去。flask db migrate会生成了一个.py的文件,这个文件是用来修改comments数据库的。如图
pic2
接着执行命令行flask db stamp head为comments数据库添加“版本号”。
去数据库console执行:

show tables;
select * from alembic_version;

结果如图:
pic3
发现此时发生变化的还有原本的comments数据库:增加了alembic_version,这是Flask-Migrate用来完成工作的底层库。其中version_num列只有一行十六进制数字,这和执行
flask db stamp head得到的数字是一样的,可以理解为Flask_Migrate为comments数据库添加的“版本号”。

四、为comments数据库添加一个新的列。

前面的工作做好了,下面就可以在flask_app.py 的comments class里添加posted = db.Column(db.DateTime, default=datetime.now)。接着依次输入以下命令行:
1.flask db migrate生成了更新数据库所需的Python文件。如图:
pic4
注意到新文件里增加了upgrade()函数用来增加posted列。
2.flask db upgrade执行上述文件,对数据库进行添加列。

这时候查看MySQL,发现posted已经被添加了。
pic5

目录
相关文章
|
2月前
|
存储 SQL 关系型数据库
Mysql学习笔记(二):数据库命令行代码总结
这篇文章是关于MySQL数据库命令行操作的总结,包括登录、退出、查看时间与版本、数据库和数据表的基本操作(如创建、删除、查看)、数据的增删改查等。它还涉及了如何通过SQL语句进行条件查询、模糊查询、范围查询和限制查询,以及如何进行表结构的修改。这些内容对于初学者来说非常实用,是学习MySQL数据库管理的基础。
141 6
|
7天前
|
弹性计算 关系型数据库 数据库
自建数据库迁移到云数据库实操
本课程详细介绍了自建数据库迁移到阿里云RDS的实操步骤。主要内容包括:创建实例资源、安全设置、配置自建的MySQL数据库、数据库的迁移、从自建数据库切换到RDS以及清理资源。通过这些步骤,学员可以掌握如何将自建数据库安全、高效地迁移到云端,并确保应用的正常运行。
68 26
|
23天前
|
弹性计算 安全 关系型数据库
活动实践 | 自建数据库迁移到云数据库
通过阿里云RDS,用户可获得稳定、安全的企业级数据库服务,无需担心数据库管理与维护。该方案使用RDS确保数据库的可靠性、可用性和安全性,结合ECS和DTS服务,实现自建数据库平滑迁移到云端,支持WordPress等应用的快速部署与运行。通过一键部署模板,用户能迅速搭建ECS和RDS实例,完成数据迁移及应用上线,显著提升业务灵活性和效率。
|
7天前
|
运维 关系型数据库 MySQL
自建数据库迁移到云数据库RDS
本次课程由阿里云数据库团队的凡珂分享,主题为自建数据库迁移至云数据库RDS MySQL版。课程分为四部分:1) 传统数据库部署方案及痛点;2) 选择云数据库RDS MySQL的原因;3) 数据库迁移方案和产品选型;4) 线上活动与权益。通过对比自建数据库的局限性,介绍了RDS MySQL在可靠性、安全性、性价比等方面的优势,并详细讲解了使用DTS(数据传输服务)进行平滑迁移的步骤。此外,还提供了多种优惠活动信息,帮助用户降低成本并享受云数据库带来的便利。
|
23天前
|
安全 关系型数据库 MySQL
体验自建数据库迁移到云数据库RDS,领取桌面置物架!
「技术解决方案【Cloud Up 挑战赛】」正式开启!本方案旨在帮助用户将自建数据库平滑迁移至阿里云RDS MySQL,享受稳定、高效、安全的数据库服务,助力业务快速发展。完成指定任务即可赢取桌面置物架等奖励,限量供应,先到先得。活动时间:2024年12月3日至12月31日16点。
|
2月前
|
SQL Ubuntu 关系型数据库
Mysql学习笔记(一):数据库详细介绍以及Navicat简单使用
本文为MySQL学习笔记,介绍了数据库的基本概念,包括行、列、主键等,并解释了C/S和B/S架构以及SQL语言的分类。接着,指导如何在Windows和Ubuntu系统上安装MySQL,并提供了启动、停止和重启服务的命令。文章还涵盖了Navicat的使用,包括安装、登录和新建表格等步骤。最后,介绍了MySQL中的数据类型和字段约束,如主键、外键、非空和唯一等。
79 3
Mysql学习笔记(一):数据库详细介绍以及Navicat简单使用
|
2月前
|
算法 大数据 数据库
云计算与大数据平台的数据库迁移与同步
本文详细介绍了云计算与大数据平台的数据库迁移与同步的核心概念、算法原理、具体操作步骤、数学模型公式、代码实例及未来发展趋势与挑战。涵盖全量与增量迁移、一致性与异步复制等内容,旨在帮助读者全面了解并应对相关技术挑战。
57 3
|
3月前
|
存储 SQL 关系型数据库
一篇文章搞懂MySQL的分库分表,从拆分场景、目标评估、拆分方案、不停机迁移、一致性补偿等方面详细阐述MySQL数据库的分库分表方案
MySQL如何进行分库分表、数据迁移?从相关概念、使用场景、拆分方式、分表字段选择、数据一致性校验等角度阐述MySQL数据库的分库分表方案。
529 15
一篇文章搞懂MySQL的分库分表,从拆分场景、目标评估、拆分方案、不停机迁移、一致性补偿等方面详细阐述MySQL数据库的分库分表方案
|
3月前
|
JavaScript 前端开发 数据库
测试开发之路--Flask 之旅 (三):数据库
本文介绍了在 Flask 应用中实现权限管理的过程,包括使用 Flask-SQLAlchemy、Flask-MySQLdb、Flask-Security 和 Flask-Login 等扩展模块进行数据库配置与用户权限设置。首先创建数据库并定义用户、环境和角色模型,接着通过 Flask-Security 初始化用户和角色,并展示了如何便捷地管理权限。后续将深入探讨权限控制的具体应用。
85 4
测试开发之路--Flask 之旅 (三):数据库
|
3月前
|
SQL 关系型数据库 MySQL
php学习笔记-连接操作mysq数据库(基础)-day08
本文介绍了PHP中连接操作MySQL数据库的常用函数,包括连接服务器、设置字符集、关闭连接、选择数据库、结果集释放、获取影响行数以及遍历结果集等操作。通过书籍查询的实例演示了如何使用这些函数进行数据库操作,并提供了一个PHP操纵MySQL数据库的模板。
php学习笔记-连接操作mysq数据库(基础)-day08