在我的項目的最初階段,我對模型做了很多更改,因此我最終爲我的應用程序生成了大量南遷移。是否有可能在進入我的生產服務器執行遷移之前以任何方式對它們進行整合,因此我不需要爲每個應用程序進行百萬次遷移?如果是這樣,我會怎麼做呢?鞏固Django南遷移
6
A
回答
5
您可以隨時刪除現有的遷移和create a new "initial" migration。
要做到這一點,你將需要:
- (完全刪除的文件夾)中刪除遷移文件爲您的應用程序
- 運行
./manage.py convert_to_south myapp
這將留給你一個遷移對應於您的應用的狀態當前狀態。
或者,你可以隨時收拾最新的遷移在一起:
- 刪除要合併(僅當它們是最新onces)遷移文件
- 運行
./manage.py schemamigration myapp
這將創建一個新的遷移,對應於您刪除的遷移。
這兩個都可能會搞亂你的開發數據庫。
1
由於這是一個開發環境,這是我要做的事(使用SQLite,請參閱下面的其他SQL服務器):
- 是否所有的變化,讓遷移文件堆積起來。沒有提交 遷移文件VCS
- 完成後,刪除所有的新移民文件
- 重命名數據庫
- 運行manage.py遷移。這將創建數據庫結構,就像在對其進行任何更改之前一樣。
- 運行manage.py makemigrations。這將創建一個反映當前狀態
- 搬回已經有使用「正確」的SQL服務器上的最終結構&數據
- 提交遷移文件
原始數據庫必要的遷移,只是不停地2數據庫:生產和開發。將項目設置更改爲指向生產數據庫,而不是在步驟3中重命名。此外,您可以跳過步驟4.
相關問題
- 1. 南Django的遷移
- 2. Django post_save和南遷移
- 3. Django 1.7 - 從南遷移
- 4. django南遷移問題
- 5. 和Django +向南遷移
- 6. Django 1.3和南遷移
- 7. 遷移數據的Django南
- 8. Django的南遷
- 9. Django,南,postgres最初的遷移錯誤
- 10. Django南遷移 - 添加FULLTEXT索引
- 11. Django數據遷移,使用南繼承
- 12. django南錯誤遷移失敗
- 13. django南遷移,沒有設置默認
- 14. 使用django的外鍵遷移南
- 15. 架構遷移與南(Django的)和MySQL
- 16. 南遷移不更新psql表(django)
- 17. Django南遷移泄漏內存
- 18. 如何將多個django南遷移合併爲一個遷移
- 19. 南遷移失敗
- 20. 鞏固黨規
- 21. 鞏固分類
- 22. 鞏固回調
- 23. 鞏固$ .ajax
- 24. 鞏固記錄
- 25. Django的核心遷移工具與南方的Django數據遷移
- 26. SQL鞏固日期
- 27. 鞏固CakePHP路線
- 28. 鞏固foreach命令
- 29. 鞏固jQuery代碼
- 30. 鞏固sed命令
因此底線是:否,最好讓遷移自行生效? – hkothari
@hkothari這就是我要做的,是的! –
需要'manage.py migrate零--fake'來清除你的南數據庫(在convert_to_south或'manage.py schemamigration --initial'之前。或者,'--delete-ghost-migrations'將有選擇地刪除您從migrations目錄中刪除的任何遷移 –
hobs