新增字段时,能不能保留原数据库里的记录?

新增字段时,能不能保留原数据库里的记录?

难道每次同步数据库时候都要db.drop_all()全部删除一次表么?如果项目需要数据表里新增一个字段来扩展功能,同步时,能不能保留数据库里的记录,不使用db.drop_all()删表?

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学,你好。同学可以根据下述方法进行操作

1、安装pip install flask-migrate和flask_script

2、创建manage.py文件,文件中的代码如下:

from flask_script import Manager
from flask_migrate import Migrate,MigrateCommand
from app import app
from app import db

manager = Manager(app)
# 要使用flask-migrate,必须先绑定db和app
migrate = Migrate(app, db)

# 2.把migrateCommand命令添加到manager中。
manager.add_command('db', MigrateCommand)
if __name__ == "__main__":
    manager.run()

3、第一次进行迁移时:

python manage.py db init  # 初始化迁移文件,系统默认生成migrate文件夹
python manage.py db migrate # 检查模型字段是否修改,如果改变,就产生新的迁移文件
python manage.py db upgrade # 对迁移文件进行迁移

后面迁移时只需要进行如下两步骤:

python manage.py db migrate # 检查模型字段是否修改,如果改变,就产生新的迁移文件
python manage.py db upgrade # 对迁移文件进行迁移

如果我的回答解决了您的疑惑,请采纳!祝学习愉快~~~~

好帮手慕美 2020-05-06 15:30:40

同学,你好。新增字段后是要先删除之前的表重新创建的。同学可以将之前的数据导出sql语句,在新增字段时,将该字段的值设置默认值。重新创建表后再执行之前的sql语句插入之前的数据即可

如果我的回答解决了您的疑惑,请采纳!祝学习愉快~~~~

  • 提问者 慕丝1539783 #1
    这样导入导出,如果数据库里数据很多,工作量会很大。如果手动在数据库里用SQL语句新增一个字段(赋默认值),然后flask里模型里也新增同样的字段,最后不使用同步语句。这样项目应该也能跑起来吧?
    2020-05-06 18:41:49
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
3.从网页搭建入门Python Web
  • 参与学习           人
  • 提交作业       218    份
  • 解答问题       3562    个

本阶段带你用Python开发一个网站,学习主流框架Django+Flask是Python Web开发的第一步,在基础知识上实现积分商城的项目开发,体验真实的项目开发流程,提高解决编程问题和效率的能力。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师