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

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

数据库迁移

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

一、创建虚拟环境

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

mkvirtualenv flask-tutorial --python=python3.6
AI 代码解读

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

pip install flask flask-login flask-sqlalchemy mysql-connector-python
AI 代码解读

接着通过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
AI 代码解读

使用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)
AI 代码解读

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

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

命令:

export FLASK_APP=flask_app.py
flask db init
AI 代码解读

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

show tables;
select * from alembic_version;
AI 代码解读

结果如图:
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

相关文章
【瑶池数据库动手活动及话题本周精选(体验ADB、 SelectDB,参与 RDS 迁移训练营)】(4.21-4.27)
本文为 “瑶池数据库动手活动及话题精选” 系列第一期,聚焦 SelectDB 日志分析、AnalyticDB Zero-ETL 集成、RDS 迁移训练营三大实战,设积分、实物等多重奖励,同步开启话题互动。点击链接参与,每周解锁数据库实战新场景。
用 YashanDB Migration Platform,数据库迁移不再是“高风险动作”
数据库迁移一直是企业信息化中的难题,耗时长、风险高。YashanDB Migration Platform(YMP)提供一站式解决方案,涵盖评估、改写、迁移与校验全流程。其核心能力包括SQL自动适配、智能对象迁移、高性能数据通道及数据对比校验,显著降低人力成本与业务风险。适合从Oracle、MySQL等迁移到YashanDB的企业,以及需异构整合或国产化替代的集团、政府和国企项目。YMP不仅是工具,更是推动数据库国产化的关键平台。
【瑶池数据库动手活动及话题本周精选(体验ADB、 SelectDB,参与 RDS 迁移训练营)】(4.28-5.4)
本文为“瑶池数据库动手活动及话题精选”系列第二期,聚焦SelectDB日志分析、AnalyticDB Zero - ETL集成、RDS迁移训练营三大实战,设积分、实物等多重奖励,同步开启话题互动。上一期活动反响热烈,错过的朋友别再犹豫!点击链接参与,每周解锁数据库实战新场景,抓紧时间,精彩不容错过!
担心YashanDB异构数据库迁移踩“坑”?听听大咖们怎么说
文章围绕异构数据库迁移展开,探讨了避免数据丢失、保障数据完整性、注意兼容性、提升迁移效率、做好反向演练等问题。包括迁移前完整性检查与备份,YashanDB 从内核设计和配套工具保障数据,对兼容性进行大量测试,通过合理评估和技术手段提升迁移效率,以及处理回退等内容。
迁移方案详解 | 使用YMP从异构数据库迁移到YashanDB
迁移方案详解 | 使用YMP从异构数据库迁移到YashanDB
崖山异构数据库迁移利器YMP初体验-Oracle迁移YashanDB
文章是作者小草对崖山异构数据库迁移利器 YMP 的初体验分享,包括背景、YMP 简介、体验环境说明、YMP 部署(含安装前准备、安装、卸载、启动与停止)、数据迁移及遇到的问题与解决过程。重点介绍了 YMP 功能、部署的诸多细节和数据迁移流程,还提到了安装和迁移中遇到的问题及解决办法。
MySQL生产环境迁移至YashanDB数据库深度体验
这篇文章是作者将 MySQL 生产环境迁移至 YashanDB 数据库的深度体验。介绍了 YashanDB 迁移平台 YMP 的产品相关信息、安装步骤、迁移中遇到的各种兼容问题及解决方案,最后总结了迁移体验,包括工具部署和操作特点,也指出功能有优化空间及暂不支持的部分,期待其不断优化。
【YashanDB 知识库】用 yasldr 配置 Bulkload 模式作单线程迁移 300G 的业务数据到分布式数据库,迁移任务频繁出错
问题描述 详细版本:YashanDB Server Enterprise Edition Release 23.2.4.100 x86_64 6db1237 影响范围: 离线数据迁移场景,影响业务数据入库。 外场将部分 NewCIS 的报表业务放到分布式数据库,验证 SQL 性能水平。 操作系统环境配置: 125G 内存 32C CPU 2T 的 HDD 磁盘 问题出现的步骤/操作: 1、部署崖山分布式数据库 1mm 1cn 3dn 单线启动 yasldr 数据迁移任务,设置 32 线程的 bulk load 模式 2、观察 yasldr.log 是否出现如下错
数据库数据恢复—MongoDB数据库迁移过程中丢失文件的数据恢复案例
某单位一台MongoDB数据库由于业务需求进行了数据迁移,数据库迁移后提示:“Windows无法启动MongoDB服务(位于 本地计算机 上)错误1067:进程意外终止。”

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等