Flask框架学习无法用flask db init子命令进行数据库迁移初始化的解决办法

时间:2024-03-23 19:03:30

一、问题描述

学习flask框架进行数据库迁移任务时,需要对数据库对象进行初始化,网上很多教程采用flask子命令flask db init来执行在项目目录产生一个migrations的文件夹用于存放初始化文件,本人在做第一个数据库迁移demo1时成功执行了,然而进行第一个数据库迁移demo2发现在不同的虚拟环境中无法使用上述命令,故错误提示如下,提示没有No such command 'db'
Flask框架学习无法用flask db init子命令进行数据库迁移初始化的解决办法

二、问题解决办法

采用另外一种方法,通过python命令行来执行初始化任务,步骤如下:

  1. 安装flask-script使得python支持命令行操作,可以在IDE中setting中或者终端terminal执行pip install flask-flask-script
  2. 在初始化文件__init__.py中写上红线框的关键代码,如下:
    Flask框架学习无法用flask db init子命令进行数据库迁移初始化的解决办法
  3. 在启动文件中修改app.run()manager.run(),如下:
    Flask框架学习无法用flask db init子命令进行数据库迁移初始化的解决办法

三、执行操作

在虚拟环境下执行命令:python Myblog.py db init
其中Myblog.py是程序入口,里面有关键代码manager.run(),结果截图如下:
Flask框架学习无法用flask db init子命令进行数据库迁移初始化的解决办法
新生成的文件夹如下:
Flask框架学习无法用flask db init子命令进行数据库迁移初始化的解决办法