Flask利用flask_migrate 数据库迁移的方法详解填坑
程序员文章站
2022-07-13 08:47:01
...
Flask 提供了flask_migrate 来进行数据库迁移,用于:
数据模型里修改了模型字段后进行更新数据库
一怎么用?
引入两个库:没有的话去pip install 一下
##数据库迁移版本的建立和迁移
from flask_migrate import Migrate,MigrateCommand
from flask_script import Manager,Shell
注册到app里并建立关系
*下面的 sqlchermydb 是我外部模型里创建的一个db对象名称
model模型py文件:
"""
"""
from sqlalchemy import Column, Integer, String
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()
class t_fields(db.Model):
_id = Column(Integer, primary_key=True, autoincrement=True)
field_name = Column(String(50), nullable=False)
order_value = Column(String(50), nullable=False)
flag = Column(Integer,nullable=False)
field_ts = Column(String(50))
# MVC M Model 只有数据 = 数据表
# ORM 对象关系映射 Code First
app注册的py文件:
app.config.from_object('config')
sqlchermydb.init_app(app)
manager = Manager(app)
migrate = Migrate(app, sqlchermydb)
manager.add_command('sqlchermydb', MigrateCommand)
最后,为这个py执行文件添加执行:
if __name__=='__main__': manager.run()
二、三个脚本命令:具体的各个命令产生的意义可自行百度,网络有很具体的了!
>>> python test.py sqlchermydb init
>>> python test.py db migrate
>>> python test.py db upgrade
依次运行就可以了!
三、坑:
1、模型一定要建立完整,每一个模型对应好数据库里面的每一张表!不然更新迁移的时候 ,没有对应的模型的表会删除!
2、数据库里有外键索引关系的,可先删除这个外键索引,不然迁移脚本执行不了!
上一篇: [Redis]Redis数据库不停服迁移
下一篇: Flask09——数据库迁移