结合 http://www.gaohaiyan.com/3906.html 一文
开发中,如果表结构(db.Model)有变更,如 添加了一个新字段,
●要么通过Navicat Premium等软件手动修改表,比较麻烦
●要么使用代码重新创建,但原有记录会清空
db.drop_all() # 清空表
db.create_all() # 自动创建尚不存在的表
●要么就用flask-migrate半自动化操作。
flask-migrate是基于Alembic进行的一个封装,并集成到Flask中,而所有的迁移操作其实都是Alembic做的,他能跟踪模型的变化,并将变化映射到数据库中。
flask-migrate的操作类似git,首次使用须init,然后做初次提交;之后只做提交。
每次提交都生成一个对应的版本号。
0.使用Migrate(app,db)来绑定app和数据库
1 2 3 4 5 |
# pip3 install flask-migrate # Successfully installed Mako-1.2.0 alembic-1.7.7 flask-migrate-3.1.0 ...app定义,略... db = SQLAlchemy(app) migrate = Migrate(app,db) |
1.首次提交
初始项目结构:
1.1.初始化
git中执行init后还有个add操作,这里不必。初始化后项目结构配图有误,蓝框的数据表是执行第2步migrate后生成的。
1.2.版本信息
1.3.提交
2.新版提交
仅执行后两步骤即可
1 2 |
flask db migrate -m "信息" flask db upgrade |
- end
声明
本文由崔维友 威格灵 cuiweiyou vigiles cuiweiyou 原创,转载请注明出处:http://www.gaohaiyan.com/3931.html
承接App定制、企业web站点、办公系统软件 设计开发,外包项目,毕设