zoukankan      html  css  js  c++  java
  • Flask第十八篇 Flask-Migrate

    终于到了Flask-Migrate,之前在学习Flask-SQLAlchemy的时候,有的同学就提过类似的问题,Flask支持 makemigration / migrate 吗?

    答案在这里该诉你,如果你同时拥有两个三方组件 Flask-Script 和 Flask-Migrate 那么就支持这样的动作

    首先你要有几个准备工作

    第十七章的知识回顾

    第十七章的项目下载

    1.安装 Flask-Migrate

    pip install Flask-Migrate

    2.将 Flask-Migrate 加入到 Flask 项目中 - PS: 注意了 Flask-Migrate 是要依赖 Flask-Script 组件的

    import MyApp
    # 导入 Flask-Script 中的 Manager
    from flask_script import Manager
    
    # 导入 Flask-Migrate 中的 Migrate 和 MigrateCommand
    # 这两个东西说白了就是想在 Flask-Script 中添加几个命令和指令而已
    from flask_migrate import Migrate,MigrateCommand
    
    app = MyApp.create_app()
    # 让app支持 Manager
    manager = Manager(app) # type:Manager
    
    # Migrate 既然是数据库迁移,那么就得告诉他数据库在哪里
    # 并且告诉他要支持那个app
    Migrate(app,MyApp.db)
    # 现在就要告诉manager 有新的指令了,这个新指令在MigrateCommand 中存着呢
    manager.add_command("db",MigrateCommand) # 当你的命令中出现 db 指令,则去MigrateCommand中寻找对应关系
    """
    数据库迁移指令:
    python manager.py db init 
    python manager.py db migrate   # Django中的 makemigration
    python manager.py db upgrade  # Django中的 migrate
    """
    
    
    @manager.command
    def DragonFire(arg):
        print(arg)
    
    @manager.option("-n","--name",dest="name")
    @manager.option("-s","--say",dest="say")
    def talk(name,say):
        print(f"{name}你可真{say}")
    
    if __name__ == '__main__':
        #app.run()
        # 替换原有的app.run(),然后大功告成了
        manager.run()
    
    MyApp/manager.py
    View Code

    3.执行数据库初始化指令

    python manager.py db init

    此时你会发现你的项目目录中出现了一个好玩儿的东西

    接下来的操作就和Django中一样了,在这里就不做演示了

  • 相关阅读:
    pormise的基本用法
    let 与 var 的区别
    字符串
    数组
    Redis 低级数据结构:一、介绍
    Curator使用:(七)分布式Barrier
    Curator使用:(六)分布式计数器
    Curator使用:(五)分布式锁
    Curator使用:(四)Master选举
    Curator使用:(三)事件监听
  • 原文地址:https://www.cnblogs.com/xintiao-/p/10446924.html
Copyright © 2011-2022 走看看