heroku上的Flask数据库迁移

spi*_*edd 5 python heroku flask flask-migrate flask-script

使用我的应用程序,我使用flask-script和flask-migrate进行数据库迁移,一切都在本地运行.什么时候,我跑

heroku run python manage.py db init
Run Code Online (Sandbox Code Playgroud)

它创建了这个输出:

Running python manage.py db init on ? fpds-scheduler... up, run.1290 (Free)
  Creating directory /app/migrations ... done
  Creating directory /app/migrations/versions ... done
  Generating /app/migrations/README ... done
  Generating /app/migrations/script.py.mako ... done
  Generating /app/migrations/alembic.ini ... done
  Generating /app/migrations/env.py ... done
  Please edit configuration/connection/logging settings in '/app/migrations/alembic.ini' before
  proceeding.
Run Code Online (Sandbox Code Playgroud)

但是当我跑步时,heroku run python manage.py db migrate我得到一个错误

alembic.util.exc.CommandError: Path doesn't exist: 'migrations'.  Please use the 'init' command to create a new scripts folder.
Run Code Online (Sandbox Code Playgroud)

当我运行heroku run bash并查看我的目录时,我可以看到没有migrations文件夹......

我试过运行给出命令,--app fpds-scheduler但似乎也没有工作.

我不确定出了什么问题?

Dan*_*man 9

不能在Heroku本身上创建迁移.文件系统是短暂的,任何以编程方式编写的内容都将在调用之间丢失.

您需要在本地创建迁移,将它们提交到版本控制,部署,然后才能在Heroku上运行它们.

  • 你实际上想在本地做`flask db init`和`flask db migrate`.将结果提交到您的git仓库.然后在Heroku上,你只做`heroku run flask db upgrade`. (5认同)