2012年3月2日金曜日

django-southの使い方。

Models変更をSQLiteなどDBに反映するツールsouthの操作手順をまとめておく。


前提条件
・south導入する前に、modelsの変更は含まないものとする。

~導入~
1.southインストール
2.プロジェクト(settings.py)にINSTALL_APPに「south」を加える。
3.「python manage.py syncdb」コマンドでDBにsouthテーブルを作成。


~最初のMigrate(既にテーブルが存在する場合)~
1.既にDBにテーブルが存在する場合、「python manage.py convert_to_south 」を実行。
注意1:特定Models内のclass Metaにあるapp_labelを書き換えてあるModelは、APP名ではなくapp_label名になる。
注意2:一度convert_to_southをすると2回目以降は変換済みとなる。
注意3:app/migration/0001_initial.pyファイルは捨てないようにする事。(fakeでmigrateされた初期値)
注意4:0001_initial.pyを作るコマンド「python manage.py migrate --initial」

2.最初の「0001_initial」が適用されているかチェックする。「python manage.py migrate --list」
注意1:もし、適用されていなかったら「python manage.py migrate 0001 --fake」コマンドを実行する。


~2回目以降~
1.Models.pyに変更を加える。
2.「python manage.py schemamigration --auto」を実行する。
 modelsフィールドにdefault値を設定していない場合は、
 コンソール操作で初期値を入れる必要がある。
 操作を終えると、migrate用ファイルが作成される。
3.「python manage.py migrate 」実行。


参考サイト
South
South v0.7 documentation(英文)
South v0.7 documentation(日本語訳)
コメントを投稿

Androider