每當我使用Django South創建datamigration
(但不要運行它),然後創建一個schemamigration
向遷移中涉及的模型添加一個新字段,manage.py migrate
任務在datamigration
上失敗。Django South:在數據遷移後添加模型字段
原因是models.py
文件的類定義包含datamigration
無法識別的新字段定義。
有什麼辦法可以防止這種情況發生?
每當我使用Django South創建datamigration
(但不要運行它),然後創建一個schemamigration
向遷移中涉及的模型添加一個新字段,manage.py migrate
任務在datamigration
上失敗。Django South:在數據遷移後添加模型字段
原因是models.py
文件的類定義包含datamigration
無法識別的新字段定義。
有什麼辦法可以防止這種情況發生?
在南方數據遷移中,您應該直接更新對模型的引用。即
from myapp.models import MyModel # <- This is bad in datamigration
MyModel.objects.filter(...)
必須使用ORM obbject
orm.MyModel.objects.filter(...) <- This is good.
有一種方法,使遷移表中識別新的領域.. –
難道是新的領域(S)手動添加到在datamigration文件中模擬字典? –
否。在初始遷移後,我有一系列用於遷移的命令,因此可以識別表中的更改。 –