django を使ってモデルを変更するが,データベース上のデータをそのまま使うには


WEB アプリケーションを作る時,データベースの列を追加するのに,通常,どうやっているのか私は知りませんが,何か良いツールなりフレームワークなりがあるのでしょうか。django を使って model を変更する場合には,south というのが便利と思いました。私は,django を使い始めた時からずっと使っています。

http://south.aeracode.org/ です。

INSTALLED_APPS に ‘south’, を追加して,python manage.py syncdb した後,
初回:
python manage.py schemamigration appname –initial
python manage.py migrate appname –fake (syncdb をした時に models を既に作っている場合はエラーになるので –fake を付ける?)

次回以降:

python manage.py schemamigration appname –auto
python manage.py migrate appname

みたいな感じだったと思います。( いまひとつ schemamigration や migrate のオプションの使い方を理解してませんが。)大きな修正は schemamigration できないかもしれないし,migrate できず困ってしまう場合がありますが。