*注:后半部分介绍使用Flask_migrate实现数据库迁移
1、安装Flask-SQLAlchemy
在pycharm命令行使用pip命令安装Flask-SQLAlchemy。
2、配置数据库
在flask_sql.py文件里配置数据库。
3、定义数据库模型并确定关联关系
以Role表和User表为例,确定两个表之间的对应关系(一对一,一对多,多对一),定义表的时候要加入对应的主外键关系,在这里,Role和User表为一对多的关系。
4、集成Python Shell
为了避免每次启动shell对话都要进行导入数据库实例和模型,我们可以做些配置,让 flask shell 命令自动导入这些对象。
5、创建迁移数据库
首先,要在虚拟环境中安装 Flask-Migrate:
在flask_sql.py文件中导入:
为了开放数据库迁移相关的命令,Flask-Migrate 添加了 flask db 命令和几个子命令。在新项目中可以使用 init 子命令添加数据库迁移支持:(init 执行一次就可以)
6、创建迁移脚本
在 Alembic 中,数据库迁移用迁移脚本表示。脚本中有两个函数,分别是 upgrade() 和 downgrade()。upgrade() 函数把迁移中的改动应用到数据库中,downgrade() 函数则将改动删除。Alembic 具有添加和删除改动的能力,意味着数据库可重设到修改历史的任意一点。
使用 Flask-Migrate 管理数据库模式变化的步骤如下。
(1) 对模型类做必要的修改。
(2) 执行 flask db migrate 命令,自动创建一个迁移脚本。
(3) 检查自动生成的脚本,根据对模型的实际改动进行调整。
(4) 把迁移脚本纳入版本控制。
(5) 执行 flask db upgrade 命令,把迁移应用到数据库中。
flask db migrate 子命令用于自动创建迁移脚本:
-m '文件名' *注:为了便于区分迁移脚本 ,建议每次起有意义的名字。
7、更新数据库
检查并修正好迁移脚本之后,执行 flask db upgrade 命令,把迁移应用到数据库中,这时数据库中才有表。
8、更新修改
给User表增加一列age属性,接着执行6、7操作,则修改完成(删除暂时有问题)
9、利用命令行操作插入列
别忘了commit()
修改行
删除行