使用我的应用程序,我使用flask-script和flask-migrate进行数据库迁移,一切都在本地运行。什么时候,我跑
heroku run python manage.py db init
它会创建此输出:
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.
但是当我运行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.
当我运行heroku run bash
并查看我的目录时,我发现没有migrations
文件夹......
我已经尝试过运行命令--app fpds-scheduler
,但这似乎无法正常工作。
我不确定会出现什么问题?
答案 0 :(得分:7)
您不得在Heroku上创建迁移。文件系统是短暂的,任何以编程方式编写的内容都将在调用之间丢失。
您需要在本地创建迁移,将它们提交到版本控制,部署,然后才能在Heroku上运行它们。