- 有設 PYTHONPATH, 執行到別個 repository 的 mange.py, 用到別組 settings, 拿到另一個 db 的 migration history。在 A 目錄設完 PYTHONPATH 做些事, 再跑去別的目錄做事, 容易發生到這個問題。
- code 沒有更新到最新版。 South 會以目前 app/migrations 目錄下的 py 檔為準, 若在 A 目錄新增 migration M, 跑完 migration; 接著到 B 目錄執行 "migrate --list", 即使 A、B 的 settings.py 一樣, 結果不會看到剛才新加的 migration M。讀 South 的原始碼後才明白這件事。
第一個問題無解, 像 PYTHONPATH 這樣的環境變數有其便利之處, 但出錯時卻都很難查覺, 踏到好幾次不同的雷。第二個問題可以提供細心的警告訊息, 說明 migration history 內的資料和目前目錄下的 script 不一致, 算小問題啦。
沒有留言:
張貼留言