前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >Flask 系列之 Migration

Flask 系列之 Migration

作者头像
py3study
发布2020-01-16 15:47:21
发布2020-01-16 15:47:21
63600
代码可运行
举报
文章被收录于专栏:python3python3
运行总次数:0
代码可运行

说明

  • 操作系统:Windows 10
  • Python 版本:3.7x
  • 虚拟环境管理器:virtualenv
  • 代码编辑器:VS Code

实验目标

通过使用 flask-migrate 实现数据库的迁移操作

实验

安装环境包

代码语言:javascript
代码运行次数:0
复制
pip install flask
pip install flask-sqlalchemy
pip install flask-migrate

使用示例

示例代码如下所示:

代码语言:javascript
代码运行次数:0
复制
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)

@app.shell_context_processor
def make_shell_context():
    return dict(app=app, db=db, User=User)

class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(128))

然后,打开当前项目的虚拟环境窗口,尝试执行下图操作:

代码语言:javascript
代码运行次数:0
复制
set flask_app=manage.py

# 初始化 migration
flask db init

#执行 migration
flask db migrate -m "initialize"

# 更新 migration(注:如果不执行此步,那么我们的变动则无法同步到数据库)
flask db upgrade

如下图所示:

我们每一次的 Migration 都会有对应的编号,这个编号会同样记录到我们的数据库中的 alembic_version 表中。

以后,当我们的数据模型发生修改的话,我们只需要重复上述的 flask db migrateflask db upgrade 操作即可。

总结

关于 Flask-Migrate 的更多操作,我们可以通过执行 flask db 查看。如下图所示,这里不做过多的解释了。

相关参考

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/05/26 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 说明
  • 实验目标
  • 实验
    • 安装环境包
    • 使用示例
  • 总结
  • 相关参考
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档