flask-migrate执行upgrade时报数据表已经存在错误:1050, "Table 'xxxx' already exists"

环境背景

最近在写一个flask的web项目,数据库使用的是mysql8.0数据库,数据库的连接方式使用的是flask-sqlalchemy的映射方式。下面贴出自己的环境:
在这里插入图片描述

遇到的问题:

自己的一个用户表原来没有电话号码字段,现在要添加电话号码字段,由于不想删除原来已有的数据,所以使用flask-migrate进行数据迁移,可以动态添加字段。

下面是启动app时会创建数据表,但是有一个问题就是以后如果要重新添加字段,就要把数据库删除,再重新创建,这样子的话数据库里的数据就没有了,再实际工作中肯定是不能这样子的。

# 文件名:app.py
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()

# 学生表orm映射
class Student(db.Model):
    id = db.Column(db.Integer,primary_key=True,autoincrement=True)
    name = db.Column(db.String(32),nullable=False)


def create_app():
    app = Flask(__name__)
    app.config.from_object('app.config') //导入数据库连接配置
    db.init_app(app)

    # 由于没有入栈,在这里手动推栈创建所有的表
    with app.app_context():
        db.create_all() //将所有的model创建到数据库中去,已有的就不能会更新了
    return app

if __name__ == "__main__":
    app = create_app()
    app.run()



新建一个manager.py文件用来添加数据表新增字段。
你要安装2个插件才可以添加新字段:

  1. flask-script
  2. flask-migrat
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值