Flask db migration in Heroku没有改变数据库模式



我正在尝试使用heroku迁移我的flask db。我在本地应用程序中执行迁移,然后将更改提交到github并部署到heroku。然后我执行了heroku run flask db migrateheroku run flask db upgrade,根据日志,一切似乎都工作正常,没有任何错误:

INFO  [alembic.autogenerate.compare] Detected added column 'users.active'
INFO  [alembic.autogenerate.compare] Detected added column 'users.password'
Generating /app/migrations/versions/a92ff10fdb60_.py ...  done
C:UsersA>heroku run flask db upgrade -a certifit
Running flask db upgrade on ⬢ certifit... up, run.6994 (Free)
INFO  [alembic.runtime.migration] Context impl PostgresqlImpl.
INFO  [alembic.runtime.migration] Will assume transactional DDL.

从日志中可以看出,迁移应该在users表中添加了两个新列:

INFO  [alembic.autogenerate.compare] Detected added column 'users.active'
INFO  [alembic.autogenerate.compare] Detected added column 'users.password'

但是,当我运行SQL查询时,结果与先前的迁移相同:

id |       email        | username |                                         password_hash                                         | acquirer_id
----+--------------------+----------+-----------------------------------------------------------------------------------------------+-------------
4 | pooostgre@mail.com | fffff    | a3990046bdc7d7a861363eab41f5f4ac8a7f574fe314ea |          11

你知道是什么问题吗?

感谢

这篇文章帮助很大https://gist.github.com/mayukh18/2223bc8fc152631205abd7cbf1efdd41/简而言之:

  1. 将SQLALCHEMY_DATABASE_URI从os. environment .get('DATABASE_URL')修改为heroku DATABASE_URL值(实际链接)。我不确定这是否对迁移数据库有任何影响,但我仍然会在这里提到它;
  2. 我在我的本地flask app.py中运行了flask db migrate和flask db upgrade(之前我在我的heroku环境中这样做);
  3. 修改SQLALCHEMY_DATABASE_URI = os. environment .get('DATABASE_URL')(因为步骤1);
  4. 将更改推送到github并将新版本部署到heroku

最新更新