【问题标题】:flask-migrate doesn't detect modelsflask-migrate 不检测模型
【发布时间】:2014-12-21 06:53:26
【问题描述】:

我在这里阅读(和观看)有关 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 中声明的所有表。

就我而言,它什么也没检测到。而且,根据本教程的 cmets,这不仅仅是我的情况。 那么,我该如何进行这项工作呢?

【问题讨论】:

    标签: python postgresql flask alembic flask-migrate


    【解决方案1】:

    确保您的模型已由您的应用导入。在大多数情况下,您的 views.py 应该这样做。但您也可以直接从您的app.py 导入它。

    【讨论】:

    • 嗨,你有这方面的例子吗?我仍然遇到这个问题。
    • 您好,@RyanAquino 先生,文件 migrations/env.py 已注释“从 myapp 导入模型”行,只需将其替换为您的数据即可。
    【解决方案2】:

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

    例如,我在__init__.py 中使用了以下内容:

    from .models import *
    

    以下是我的manage.py

    from databases import models
    

    因为这些有不同的命名空间,flask_manager 认为有重复的表。 (注意,我在下面的github issue / thread找到了这个解决方案。)

    修好,一切都会好起来的。

    【讨论】:

      猜你喜欢
      • 2018-12-11
      • 1970-01-01
      • 2023-02-02
      • 2016-07-27
      • 2020-09-26
      • 2023-03-09
      • 1970-01-01
      • 2013-10-19
      • 2017-01-04
      相关资源
      最近更新 更多