Flask-Migrate脚本未将更改应用于Postgres数据库

时间:2019-11-05 20:26:44

标签: postgresql docker flask flask-migrate

我在Flask项目中对模型进行了一些最近的更改。我试图将这些更改应用于Postgres DB,但是该脚本似乎没有任何效果。当我运行升级时,它会显示

INFO  [alembic.runtime.migration] Context impl SQLiteImpl.
INFO  [alembic.runtime.migration] Will assume non-transactional DDL.
INFO  [alembic.runtime.migration] Running upgrade  -> ba60ca569e9f, empty message

,但是数据库中没有任何变化。我删除了数据库并重新创建它,但仍然没有任何反应。怎么了?

1 个答案:

答案 0 :(得分:0)

Context impl SQLiteImpl.是一个强烈的暗示。我的数据库URI由SQLALCHEMY_DATABASE_URI = os.environ.get('DATABASE_URI') or 'sqlite:///'确定。当我在由Docker组成的环境中运行项目时,它起作用了,因为DATABASE_URI已在Dockerfile中正确设置。当我在本地环境上运行它时,它不起作用。我可以在服务器容器上运行它,它应该可以工作。

我通过将DATABASE_URI正确设置为export DATABASE_URI=postgres://{USERNAME}:{PASSWORD}@127.0.0.1:5432/debateit来解决此问题。这使我的本地环境连接到Postgres DB,而不是本地SQLite。