在Django的遷移代碼中,有一個squashmigrations
命令:「如果可能,將app_label
直到幷包括migration_name
的遷移壓縮到更少的遷移中。」如何擠壓最近的Django遷移?
所以,如果你想擠壓前5次遷移,這將有所幫助。
什麼是最好的方式來壓扁開始與特定migration_name
?
在我目前正在開發的一個項目中,我們添加了5-10個新的遷移文件,因爲我們添加了新功能。我們將立即部署整個項目,看起來像單獨運行這些項目需要很長時間。我想將這個項目的所有遷移壓縮到一個遷移中,並測試運行該遷移的時間。
更新 - 壓扁和測試後,花了太長時間。其中很大一部分是因爲對於我添加的每一列,MySQL都會複製整個表格,添加列,然後重命名錶格。我使用'sqlmigrate'來查看將要運行的SQL,並將四個獨立的ALTER TABLE語句合併爲四個ADD COLUMN部分,並使用帶有'state_operations'參數的'migrations.RunSQL'運行此操作,以保持遷移狀態邏輯的快樂。 –