zoukankan      html  css  js  c++  java
  • Flask框架之数据库迁移集成到Script中

    1. 安装migrate模块

    pip install flask_migrate

    2. 创建manage对象,并接管app和db对象

    manager = Manager(app, db) 

    3. 将数据库迁移操作集成到script中

    manager.add_command('db', MigrateCommand)

    案例代码:

    from flask import Flask
    from flask_sqlalchemy import SQLAlchemy
    from flask_script import Manager
    from flask_migrate import Migrate, MigrateCommand
    
    app = Flask(__name__)
    app.config['SQLALCHEMY_DATABASE_URI']='mysql://root:mysql@127.0.0.1:3306/flask_01'
    
    manager = Manager(app)
    
    db = SQLAlchemy(app)
    
    migrate = Migrate(app, db)
    
    # 使用migrate集成到script
    manager.add_command('db', MigrateCommand)
    
    
    class Book(db.Model):
        id = db.Column(db.Integer, primary_key=True)
        name = db.Column(db.String(20), nullable=True)
        hero_set = db.relationship('Hero', backref='book', lazy='dynamic')
    
    
    class Hero(db.Model):
        id = db.Column(db.Integer, primary_key=True)
        name = db.Column(db.String(20), nullable=True)
        book_id = db.Column(db.Integer, db.ForeignKey('book.id'))
    
    
    @app.route('/')
    def index():
        return 'index'
    
    if __name__ == '__main__':
        manager.run()

    使用shell脚本执行数据库迁移

    1. 创建makemigrations文件夹,及其相关文件。

    python 文件名 init

    2. 创建数据库迁移文件

    python 文件名 migrate

    3. 执行迁移文件

    python 文件名 upgrade
    该花的钱要花,该吃的饭要吃。
  • 相关阅读:
    数组中重复的数字-剑指Offer
    不用加减乘除做加法-剑指Offer
    扑克牌顺子-剑指Offer
    左旋转字符串-剑指Offer
    翻转单词顺序列-剑指Offer
    和为S的连续正数序列-剑指Offer
    和为S的两个数字-剑指Offer
    数组中只出现一次的数字-剑指Offer
    平衡二叉树-剑指Offer
    二叉树的深度-剑指Offer
  • 原文地址:https://www.cnblogs.com/chao666/p/12424885.html
Copyright © 2011-2022 走看看