使用flask-migrate进行数据库模型迁移

更新数据库的原有

如果碰到需要修改数据库模型同时进行更新

flask-sqlalchemy的机制是数据库表不存在的时候,才会根据模型进行创建数据库

所以造成了如果要更新模型,只能将原有的表进行删除,再重新进行创建

这样会丢失原有表中的所有数据,而数据库迁移框架则可以解决

创建迁移仓库

首先安装flask-Migrate

pip install flask-Migrate

初始化Flask-Migrate

from flask-migrate import Migrate

pass

migrate=Mirgrate(app,db)

接着当前目录的命令行中使用flask db init

这条命令会创建migrations目录,所有迁移脚本都存放在这个文件里面

创建迁移脚本

为了测试先对模型类进行一个修改

例如:

	class User():
        ....
    	age = db.Column(db.Integer,nullable=True)

class User()中添加age = db.Column(db.Integer,nullable=True)

执行flask db migrate "initial migration"命令

自动创建的迁移脚本并不一定正确,所有要手动检查一下,失误的地方手动更改

执行flask db upgrade更新数据库