如何重置 migrations

1. 把所有 migrations 砍掉,重做一個 migrations(python manage.py makemigratioms),這樣會只有 0001_initial.py。
<這裡把過去 migrations 都砍掉之後,重做的 migrations,其實就是之前新增後經過刪減的最終 models >

2. 舊 db 的 django_migrations 表,找到自己 app,超過 0001 的 record 都砍掉。
<這裡會紀錄過去 migrations,但現在已經刪除重做 migrations 了,所以這裡也必須同步。SQL 語法可以參考第二張圖。>

如此一來做 migrate 時,可以達到較不容易出錯 (因為只剩下一份檔案 0001_initial.py,不需依附前面一個檔案)又同時保留其他舊資料的效果。

砍掉 record 前: file 執行 SQL: 圖的 main 是範例中「自己 app」,因此執行 SQL 時要改成自己 app 的名稱 file 砍掉 record 後: file

Was this article helpful? Votes: 0
Article details:
Published date: 26/12/2020 9:10AM
Last updated: 29/12/2020 10:09AM (Casey - casey.hsu@nuwainfo.com)
Share article: 
Author: Casey (casey.hsu@nuwainfo.com)