繁体   English   中英

为什么我会收到“CommandError: App 'app_name' 没有迁移。” 什么时候使用 Heroku?

[英]Why do I get “CommandError: App 'app_name' does not have migrations.” when using Heroku?

所以我已经将我的 Django 项目部署到 Heroku,现在正在尝试迁移数据库。 我在本地服务器上一切正常。 然后我尝试在heroku中运行命令,如下所示。
heroku run python manage.py makemigrations app_name'
这工作得很好。

Migrations for 'app_name':
  contents\migrations\0001_initial.py
    - Create model Book   
    - Create model Category
    - Create model Content

然后当然,我试过: heroku run python manage.py migrate app_name
但是后来我收到了这个错误CommandError: App 'app_name' does not have migrations.

我对可能的问题做了一些研究,但没有一个与我的相关。
例如,我在 app_name 目录内的migrations文件夹中有__init__.py 另外,我试过heroku run python manage.py migrate以及heroku run python manage.py migrate app_name
我很困惑。 你认为有什么问题? 提前致谢。 :)

我遇到了同样的问题,我不知道为什么,但以下对我有用(一行中有两个命令):

python manage.py makemigrations && python manage.py migrate app_name

正如heroku 的帮助文章为什么我的文件上传丢失/删除?

Heroku 文件系统是短暂的——这意味着在 dyno 运行时对文件系统的任何更改只会持续到该 dyno 关闭或重新启动。

也就是说,您确实生成了迁移文件,但在重新加载应用程序后不久它们就不再存在。

一般来说,您采取的策略不是迁移的好方法,因为这可能会导致各种问题,假设您有多个生产服务器,每个服务器都生成自己的迁移,这会导致冲突! 在您的情况下,假设您确实以这种方式迁移,然后您想添加一些新模型,这再次会给您带来问题。

应该始终将他们的迁移添加到版本控制(git 等)提交它们并将它们推送到生产(这里是你的 heroku dyno)。 在本地运行python manage.py makemigrations ,提交生成的迁移,推送它们,然后运行heroku run python manage.py migrate

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM