flask-migrate迁移ORM模型

解决的问题就是由于需要新增表对象属性时使用db.create_all()方法不能够将新增的属性在数据库中保存,所以才会使用flask-migrate迁移ORM模型

导包

pip install flask-migrate

在pycharm中的终端进行输入,可以确保是在自己的运行环境中安装.
在这里插入图片描述

代码

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

orm模型映射三步

flask db init这个只需要在命令行执行一次

在这里插入图片描述
就会产生一个名为migrations的包,里面存放的都是一些迁移脚本
在这里插入图片描述

命令行执行flask db migrate识别OEM模型的改变,生成迁移脚本

在这里插入图片描述

此时可以发现本次的迁移脚本

在这里插入图片描述

使用flask db upgrade 在命令行中运行,更新本次的操作

在这里插入图片描述
其中会自动生成一个记录版本号的表

测试

给User表新增性别属性

class User(db.Model):
    __tablename__ = "user"  # 表名
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)  # 创建属性,类型为integer,设为主键,自增
    username = db.Column(db.String(100), nullable=False)  # valchar(100), 非空
    password = db.Column(db.String(100), nullable=False)  # valchar(100), 非空
    age = db.Column(db.Integer)
    gender = db.Column(db.String(1))  # 新增属性
    articles = db.relationship("Article", back_populates="author")

用命令行使用flask db migrate生成新的迁移脚本,就会出现新的运行脚本
在这里插入图片描述
用命令行执行flask db upgrade更新表,可以看到表中确实多了gender这个属性
在这里插入图片描述

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值