Flask-Migrate无法检测到模型。

14
我正在阅读(和观看)关于Flask-Migrate的内容,链接如下: https://realpython.com/blog/python/flask-by-example-part-2-postgres-sqlalchemy-and-alembic/ 以及这里:https://www.youtube.com/watch?v=YJibNSI-iaE#t=21 我按照该教程完成以下步骤:
- 启动本地Postgres服务器(使用Postgres.App,在postgresql://localhost:5432启动服务器) - 根据教程更新配置 - 更新app.py并创建models.py等文件
在安装了Flask-Migrate并运行了以下命令后:
python manage.py db init
python manage.py db migrate

它应该能够检测到在models.py中声明的所有表。

在我的情况下,它什么都没检测到。根据教程评论所述,这不仅是我的情况。 那么,我该如何使其正常工作?

4个回答

27

确保您的模型被应用程序引入。在大多数情况下,您的views.py应该完成这项操作。但是,您也可以直接从app.py导入它。


你好,你有这方面的例子吗?我仍然遇到了问题。 - Ryan Aquino
1
您好 @RyanAquino 先生,文件 migrations/env.py 中的行 "from myapp import models" 被注释了,只需将其替换为您的数据即可。 - Luiz

4

请确保在应用程序中以相同方式导入模型。

例如,我在我的 __init__.py 中使用了以下代码:

from .models import *

以下是我 manage.py 中的内容:

from databases import models

因为这些有不同的命名空间,flask_manager认为存在重复的表。(注意,我在以下的github问题/线程中找到了这个解决方案。) 修复后一切都会很好。

2
如果 Flask 无法检测到您的模型,请在迁移文件夹的 env.py 中添加以下内容:from models import *

0

你需要在代码的任何地方导入你的模型,这样SQLAlchemy才能识别它。


你的回答可以通过提供更多支持信息来改进。请编辑以添加进一步的细节,例如引用或文档,以便他人可以确认你的答案是正确的。您可以在帮助中心找到有关如何编写良好答案的更多信息。 - Community

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接