[解決済み] Django Southを使用して移行履歴をリセットするための推奨される方法は何ですか?
質問
South (0.7) と Django (1.1.2) を使ったマイグレーションがかなり蓄積され、ユニットテストにかなりの時間を消費するようになりました。ベースラインをリセットして、新しい移行セットを始めたいと思います。を見直しました。 サウスドキュメント また、通常の Google/Stackoverflow 検索 (例: "django south (reset OR delete OR remove) migration history") を行いましたが、明らかなものは見つかりませんでした。
私が考えた1つのアプローチは、quot;starting over" by "removing" South or "clearing" history manually (e.g. clear the db table, remove migration files from migrations director) and just re-run.It です。
<ブロッククオート./manage.py schemamigration southtut --initial
そこで、どなたかこれをやったことのある方で、ヒントや提案をお持ちの方がいらっしゃれば、大変ありがたく思います。
解決方法は?
<ブロッククオートEDIT - 以下のコメントは、@andybak に続く > 受け入れられた回答の前に読むことが重要なので、この一番上に置いています。
<ブロッククオートドミニクさん manage.py reset southに関するあなたのアドバイスは危険です。 を使用しているサードパーティアプリがある場合、データベースを破壊する可能性があります。 サウスは、以下の @thnee さんの指摘の通り、プロジェクト内に存在します。あなたの この回答は非常に多くのupvoteを獲得しているので、編集していただけると幸いです。 を追加し、少なくともこのことについての警告を加えるか、(さらに良いことに)それを変更する。 を反映させることで、@hobsのアプローチ(同じように便利で、かつ 他のアプリに影響を与える) - ありがとうございます - chrisv Mar 26 '13 at 9:09
回答は以下の通りです。
最初に 南の著者による回答 :
すべてのデプロイメントで同時に行うように注意すれば、特に問題はないはずです。個人的には、そうしています。
rm -r appname/migrations/ ./manage.py reset south ./manage.py convert_to_south appname
(注意点として、"
reset south
「の部分は、すべてのアプリのマイグレーションレコードをクリアするので、他の2行をすべてのアプリに対して実行するか、選択的に削除してください)。その
convert_to_south
は新しいマイグレーションを作成し、それをフェイクで適用します(データベースにはすでに対応するテーブルがあるので)。処理中にすべてのアプリテーブルを削除する必要はありません。
このような不要な開発用マイグレーションをすべて取り除く必要があるときに、開発用+本番用サーバーで私が行っていることは次のとおりです。
- 両者のDBスキーマが同じであることを確認する。
- 両側のmigrationsフォルダをすべて削除する
- ./manage.py reset south (as the post says) を両側で実行する = south tableをクリアする *。
- ./manage.py を実行します。 南部に変換する 両側で (0001の移行を偽装する)
- その後、再スタートしてマイグレーションを作成し、マイグレーションフォルダをサーバーにプッシュすることができます。
* ただし、他のアプリのうち1つだけをクリーンアップしたい場合は、south_historyテーブルを編集して、自分のアプリに関するエントリだけを削除する必要があります。
関連
-
[解決済み] QuerySetで空白またはNULLの名前をフィルタリングする方法は?
-
[解決済み] django の OneToOneField と ForeignKey の違いは何ですか?
-
[解決済み] Django のフォームで、あるフィールドを編集できないように readonly (または disabled) にするにはどうしたらいいですか?
-
[解決済み】Django Southでの後方移行について
-
[解決済み] Django - Southを使用してモデルフィールドの名前を変更する方法は?
-
[解決済み] Djangoテンプレート内でコレクションのサイズを確認するにはどうすればよいですか?
-
[解決済み] Django REST フレームワーク: 非モデルシリアライザー
-
[解決済み] django のテンプレートで最初の文字を大文字にする
-
[解決済み] django-tastypie と djangorestframework の違いは何ですか?[クローズド]
-
[解決済み] ブロック %} に上書きではなく、追加することはできますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Django の ForeignKey パラメータの使用法
-
django のクエリセット操作
-
Django ForeignKey逆引きクエリにおけるfilterと_setの効率比較
-
ImproperlyConfiguredです。DEFAULT_INDEX_TABLESPACE の設定を要求されましたが、設定されていません。
-
[解決済み] request.GETでURLパラメータを取得する
-
[解決済み] FastCGIとDjangoを使用しているnginxのエラーログはどこで見ることができますか?
-
[解決済み] django-rest-framework の管理者スタイルのブラウズ可能なインターフェイスを無効にする方法は?
-
[解決済み] Django South - テーブルはすでに存在する
-
[解決済み] Django で null を許容するユニークなフィールド
-
[解決済み] Djangoで複数のfilter()を連鎖させる、これはバグ?