Flask 系列之 Migration
程序员文章站
2022-05-14 08:41:20
说明 操作系统:Windows 10 Python 版本:3.7x 虚拟环境管理器:virtualenv 代码编辑器:VS Code 实验目标 通过使用 flask migrate 实现数据库的迁移操作 实验 安装环境包 使用示例 示例代码如下所示: 然后,打开当前项目的虚拟环境窗口,尝试执行下图操 ......
说明
- 操作系统:windows 10
- python 版本:3.7x
- 虚拟环境管理器:virtualenv
- 代码编辑器:vs code
实验目标
通过使用 flask-migrate 实现数据库的迁移操作
实验
安装环境包
pip install flask pip install flask-sqlalchemy pip install flask-migrate
使用示例
示例代码如下所示:
import os from flask import flask from flask_sqlalchemy import sqlalchemy from flask_migrate import migrate basedir = os.path.abspath(os.path.dirname(__file__)) app = flask(__name__) app.config['sqlalchemy_database_uri'] = 'sqlite:///' + \ os.path.join(basedir, 'default.sqlite') app.config['sqlalchemy_track_modifications'] = true db = sqlalchemy(app) migrate = migrate(app, db) class user(db.model): id = db.column(db.integer, primary_key=true) name = db.column(db.string(128))
然后,打开当前项目的虚拟环境窗口,尝试执行下图操作:
set flask_app=manage.py # 初始化 migration flask db init #执行 migration flask db migrate -m "initialize" # 更新 migration(注:如果不执行此步,那么我们的变动则无法同步到数据库) flask db upgrade
如下图所示:
我们每一次的 migration 都会有对应的编号,这个编号会同样记录到我们的数据库中的 alembic_version 表中。
以后,当我们的数据模型发生修改的话,我们只需要重复上述的 flask db migrate 和 flask db upgrade 操作即可。
总结
关于 flask-migrate 的更多操作,我们可以通过执行 flask db 查看。如下图所示,这里不做过多的解释了。