我有一個模型與相關字段設置。我運行了manage.py migrate
,然後在我的數據庫中創建了一個表。然後我運行manage.py makemigrations
,以便它可以創建一個前綴爲「0001」的初始遷移文件。我在我的模型中添加了另一個字段,然後再次運行manage.py makemigrations
,這創建了另一個帶有前綴'0002'的遷移文件。當我現在運行manage.py migrate
時,它仍會查看第一個遷移文件,並因此拋出「表已存在」的錯誤。我怎樣才能讓它只查看最新的遷移文件,以便將新列添加到表中?我正在使用MySQL。Django - Migrate命令表示在執行第二次makemigrations後存在表格
1
A
回答
2
這絕不會發生,除非Django檢測到(認爲)數據庫尚未設置,並嘗試用模式初始化表。
看起來你的桌子已經安裝好了,但這是django所不知道的。這就是爲什麼它會嘗試開始應用第一次遷移 - 表中的創建和模式都包含在內。
您可以使用--fake
和--fake-initial
選項按您的具體問題,這告訴Django該表已經建立和準備好,並假的遷移。
更多信息有用的鏈接:
django migrations - django documentation
相關問題
- 1. 「表不存在」 Django上makemigrations
- 2. migrate命令:表「MODEL_NAME」已經存在
- 3. 第一命令後,執行命令執行在Ubuntu
- 4. 檢測代碼是否在migrate/makemigrations命令的上下文中運行
- 5. django +南:migrate命令不會在數據庫中創建表
- 6. For循環第二次以後不執行的第一個命令
- 7. bash命令只執行第一次就
- 8. Javascript執行後第二次點擊
- 9. 在第一個sshpass被執行後無法執行sshpass命令
- 10. 如何在第一次執行後調用第二個函數?
- 11. Django的:錯誤:未知命令:「makemigrations」
- 12. 如何在「makemigrations」之後更改表名
- 13. 從命令行執行Django Shell命令
- 14. Django 1.7 makemigrations將表格重命名爲None
- 15. 的Heroku + Django的migrate命令不會創建任何表
- 16. 第二次重新生成Django表單
- 17. 「pip」命令不在console2中執行,但在Windows命令提示符下執行
- 18. ng-click無法在表格內部進行第二次點擊
- 19. 第二次執行宏後將Excel單元格向下移動
- 20. Django MakeMigrations在添加新表格後無法在版本1.10中工作
- 21. 運行命令manage.py migrate錯誤
- 22. 在批處理文件中執行第二個命令
- 23. 在表格上顯示約束命令
- 24. 第一次使用後命令提示符「忘記」命令
- 25. 如何寫在命令提示符下的第二級命令
- 26. 如何在Django中執行Linux命令?
- 27. InvalidOperationException在第二次執行後臺工作
- 28. 工具提示不會顯示第二次創建表格
- 29. 在Google表格中顯示第一,第二和第三位
- 30. 在bq命令行工具中一次查詢大量表格
kicker86嗨。我決定從新鮮開始,以確認我所經歷的。我放棄了數據庫並創建了一個新的數據庫;然後我刪除了我的應用程序文件夾中的遷移文件夾中的所有文件。然後我運行'manage.py migrate',按照預期工作,然後運行'manage.py makemigrations'。現在它告訴我:'沒有檢測到變化。我之前遇到過這個問題,所以我通常做的是'manage.py makemigrations'。它不是很奇怪,它只適用於我指定app_name時? –
Vinu
'makemigrations'創建遷移,'migrate'應用這些遷移。所以當你創建一個空的數據庫並刪除所有的遷移文件時,你應該首先運行'makemigrations'來創建遷移文件,然後用'migrate'應用這些文件。在沒有任何遷移文件的情況下在空數據庫上運行'migrate'將除了安裝django(以及其他應用程序,如果使用的話)基表以外不會執行任何操作。沒有遷移文件,您的模型不會被轉換成表格。 – kicker86
看看他的答案,爲什麼你需要使用應用程序名稱而不是通用的'make migrations'語句創建遷移:http://stackoverflow.com/questions/24912173/django-1-7-makemigrations-not-detecting-changes – kicker86