无法从 flask_migrate 导入 MigrateCommand

Posted

技术标签:

【中文标题】无法从 flask_migrate 导入 MigrateCommand【英文标题】:Can't import MigrateCommand from flask_migrate 【发布时间】:2021-10-02 06:03:22 【问题描述】:

我在 Flask 应用程序中为数据库迁移创建了一个 manage.py 文件,但在尝试导入 MigrateCommand 时出现错误。我正在使用 PyCharm,我确定该软件包已安装。

代码:

import os
from flask_migrate import Migrate,MigrateCommand
from flask_script import Manager
from app import app, db

app.config.from_object(os.environ['APP_SETTINGS'])

migrate = Migrate(app, db)
manager = Manager(app)

manager.add_command('db', MigrateCommand)


if __name__ == '__main__':
    manager.run()

错误:

Cannot find reference 'MigrateCommand' in '__init__.py' 

编辑:

就像 Matteo Pasini 回答的 Flask-Script 不再受支持,最好的解决方案是使用 Flask CLI。对于任何想知道使用 Flask CLI 的 manage.py 文件是什么的人,我建议阅读这个解释得很好的简短指南:

https://medium.datadriveninvestor.com/migrating-flask-script-to-flask-2-0-cli-4a5eee269139

【问题讨论】:

【参考方案1】:

MigrateCommand 似乎不再受支持:https://github.com/miguelgrinberg/Flask-Migrate/issues/407

一种可能的解决方法是安装旧版本的Flask-Migrate,例如:

pip install Flask-Migrate==2.6.0

或切换到 Flask CLI

【讨论】:

我们谈论的是flask_migrate。为什么你告诉切换到flask_cli 而不是flask_shell。你能帮忙解释一下吗? github.com/miguelgrinberg/Flask-Migrate/issues/407

以上是关于无法从 flask_migrate 导入 MigrateCommand的主要内容,如果未能解决你的问题,请参考以下文章

flask_migrate

flask_migrate---处理 sqlalchemy 数据迁移的工具

Flask 学习-19.配置管理flask_sqlalchemy 和 flask_migrate

Flask插件---flask_script与flask_migrate

flask_migrate鏁版嵁搴撹縼绉婚亣鍒扮殑闂

Please edit configuration/connection/logging settings in '/home/mac126/Desktop/13/test3-1/migr