所以問題是我有一個Django項目現在運行良好。Django South Schema移植夾具預加載
我需要做兩個模式的變化,A和B.
出於某種原因,我需要在我申請遷移到一些固定加載到數據庫,然後應用遷移B.
我可以做它當然是手動的。像:
./manage.py migrate my_app 0001
./manage.py loaddata my_fixture.json
./manage.py migrate my_app 0002
而且工作正常。
但是,在生產中,我想用腳本自動部署我的項目。我不想在其中添加太多手動步驟。
我理想的解決方案是,我可以在模式更改後自動填充我的夾具(也許有一些特殊的選項參數)。
有沒有人有一個想法如何做到這一點? PS:我可能沒有給出我的問題的足夠信息。所以如果你認爲問題本身太模糊,留下評論,讓我看看我能做些什麼來使其更清楚。
更新: 我將Serafeim標記爲正確答案。羅伯特·恩達爾Jørgensgaard指出了一個很好的點,可以在下面的帖子 django loading data from fixture after backward migration/loaddata is using model schema not database schema
不過來解釋詳細,我們的問題是不完全一樣的。我的模式A是創建一個新表,並且在可預見的將來不會改變它。遷移B是添加一個新的列到另一個表指向由A創建的表。這就是爲什麼我需要預先填充新表中的一些數據(對於其他一些複雜的原因,我不想解釋這一點太多了)。我已經從Serafeim測試瞭解決方案,它的工作原理。然而,如果任何人遇到類似的情況,請查看RobertJørgensgaardEngdahl分享的文章,瞭解此解決方案的不足之處,然後再採取該解決方案。再次感謝兩位答案提供者!
聽起來很有希望,讓我試試 –
不會工作。看看這個相關的帖子:http://stackoverflow.com/questions/5472925/django-loading-data-from-fixture-after-backward-migration-loaddata-is-using-mo?rq=1 loaddata命令,不管你如何調用它,都會使用Django ORM而不是南ORM,所以後面的遷移將會使這個失效。 –
@RobertJørgensgaardEngdahl,謝謝你的建議。我想我明白這個解決方案的有害部分。我仍然有使用它的原因,請參閱更新。 –