博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Flask学习笔记(3)-数据库迁移
阅读量:7010 次
发布时间:2019-06-28

本文共 1613 字,大约阅读时间需要 5 分钟。

数据库迁移

通过创建虚拟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-wheelsclick==6.7Flask==0.12.2Flask-Login==0.4.0Flask-SQLAlchemy==2.3.2itsdangerous==0.24Jinja2==2.9.6MarkupSafe==1.0mysql-connector-python==2.0.4SQLAlchemy==1.1.14Werkzeug==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.pyflask 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

转载于:https://www.cnblogs.com/aubucuo/p/flask3.html

你可能感兴趣的文章
智能家居市场发展困境
查看>>
中芯国际第三财季净利润1.136亿美元
查看>>
关于SaaS和数据恢复的6大谬误
查看>>
调查:95% 的 APT 攻击源起社交网站
查看>>
《ANSYS CFX 14.0超级学习手册》——1.2 流体力学控制方程
查看>>
《Kali Linux渗透测试的艺术》—第2章2.3节安全测试方法论
查看>>
《版式设计——日本平面设计师参考手册》—第1章段落样式和字符样式的应用...
查看>>
《软件工艺师:专业、务实、自豪》一3.7.1 软件工艺峰会
查看>>
《善用佳软:高效能人士的软件应用之道》一2.4 项目管理:免费Project查看软件汇总...
查看>>
千元悬赏修复 OSC iPhone 客户端网络连接问题
查看>>
iOS 再现奇葩漏洞,恶意视频导致设备死机
查看>>
我自找的,开除我吧
查看>>
Galera 将死 — MySQL Group Replication 发布
查看>>
《基于ArcGIS的Python编程秘笈(第2版)》——1.4 总结
查看>>
Mozilla 发现用于中间人攻击的证书
查看>>
Docker 中管理数据 【已翻译100%】
查看>>
《Unity 5.x游戏开发实战》一2.2 Unity中的C#脚本
查看>>
《OOD启思录》—第2章2.3节 类耦合与内聚
查看>>
【好书推荐】适合开发者学习DevOps的5本好书
查看>>
11个Linux基础面试问题
查看>>