1.介绍
当我们使用db.create_all()创建完数据库表后,想要在增加字段,但是不能自动映射到数据库中。必须删除表,然后重新运行db.create_all(),才会重新映射。但是之前存储的数据也都没了。因此flask-migrate就是为了解决这个问题,可以随时更新数据库字段,将修改的东西映射到数据库。
2.安装
进入你的虚拟环境,当黑窗口中显示(flask-env),使用 pip install flask-migrate 安装。由于migrate使用需要用命令行,而flask-script是专门操作命令行的,所以还需要安装flask-script,方法同样。进入虚拟环境,第一部分是个人路径,第二部分完全一样。

3.使用
接着昨天的例子,将模型放在单独的py文件中,创建数据库,表


新创建一个manage.py文件,使用flask-script来操作migrate命令行。要导入Manager函数,Mirgrate和MigrateCommand函数,需要操作数据库对象,导入db,Manager初始化要绑定app,从主文件导入app,要确定操作的模型,导入模型类。MigrateCommand中包含所有和数据库相关的命令行。

4.migrate相关命令
一切准备就绪后,打开黑窗口,进入虚拟环境,进入当前项目所在的文件夹。如果是第一次创建执行以下三步。
(1)python manage.py db init 初始化会生成migrate文件夹
(2)python manage.py db migrate 生成迁移文件
(3)python manage.py db upgrade 更新数据库字段
如果后几次更新数据库,只需要执行后面两步,因为第一次已经创建文件夹完成。
5.更新结果


网友评论