zoukankan      html  css  js  c++  java
  • Flask 系列之 Migration

    说明

    • 操作系统: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)
    
    @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))
    

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

    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 查看。如下图所示,这里不做过多的解释了。

    相关参考

  • 相关阅读:
    《快速软件开发》学习笔记 之一
    Python+常用模块(2).md
    Python语法 (1).md
    使用mysql导入txt文件
    Python+numpy(3).md
    笔试二(程序题)
    啦啦啦 我的博客开通了
    java面试笔试
    笔试三(面试二)
    笔试三(面试)
  • 原文地址:https://www.cnblogs.com/hippieZhou/p/10667754.html
Copyright © 2011-2022 走看看