簡體   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