zoukankan      html  css  js  c++  java
  • flask-Migrate模块

    功能

    flask-migrate是flask的一个扩展模块,主要是扩展数据库表结构的.

    官方文档:http://flask-migrate.readthedocs.io/en/latest/

    安装

    pip install flask-migrate

    使用举例

    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'] = 'sqlite:///app.db'
    
    db = SQLAlchemy(app)
    migrate = Migrate(app, db)
    
    manager = Manager(app)
    manager.add_command('db', MigrateCommand)
    
    class User(db.Model):
        id = db.Column(db.Integer, primary_key=True)
        name = db.Column(db.String(128))
    
    if __name__ == '__main__':
        manager.run()

     执行命令

    $ python manage.py db init   初始化数据库,会创建一个migations文件夹,并且会在数据库中生成一个alembic_version表
    $ python manage.py db migrate  创建迁移历史
    $ python manage.py db upgrade  更新数据库

     坑

    1.设计表时字段的默认值

    operator = db.Column(db.String(40), nullable=True, server_default="init_data")

    这里用参数server_default,而不是default

    2.如果报这个错误

    Heroku Postgres, db migrate fail: alembic.util.exc.CommandError: Can't locate revision identified by

    将alembic_version表中的数据删掉即可

  • 相关阅读:
    太久了
    idea文件过大解决方法
    ibus词库导入
    Linux认证考试
    Idea Linux 下的配置 max_user_watches
    SpringBoot启动过程之web,servlet/filter等
    SpringBoot启动过程学习
    也谈一下面试
    MVCC
    Python pyside2 qt 画画面
  • 原文地址:https://www.cnblogs.com/terrycy/p/7357194.html
Copyright © 2011-2022 走看看