2014年1月2日木曜日

[django] 既存のプロジェクトにsouthを追加する方法



1.southのインストール


$ pip install south


2.settings.pyに追記

settings.py の INSTALLED_APPS に'south'を追記します。

$ vi settings.py
INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',

    'アプリ名1',
    'アプリ名2',

    # southを追加
    'south',
)


3.既存のアプリをsouthに追加

既にデータベース上にテーブルが作成されている各アプリについて、以下のコマンドを実行します。

$ python manage.py schemamigration アプリ名 --init
$ python manage.py migrate アプリ名 --fake


--fake を付けるのを忘れると、southは新たにテーブルを作成しようとし、エラーが返ってきます。


(おまけ) 初期化完了後、モデルの変更時

以下のコマンドを実行すると、モデルの変更をデータベースに反映できます。
$ python manage.py schemamigration アプリ名 --auto
$ python manage.py migrate アプリ名


なお、既存のデータに対してdefault値などが設定されていない列を追加する場合は、初期値としてどのような値を入力するかを聞いてくれます。
この際、datetime.datetime.now()等のpythonの式を代入することもできるので便利ですね。



0 件のコメント:

コメントを投稿

Related Posts Plugin for WordPress, Blogger...