はじめに
プロジェクトの途中からDjangoのマイグレーション機能を使うようにした際のメモです。
Djangoのバージョンは2.0を使ってます。
models.pyを作る
まず、DBの構造を定義してあるmodels.pyを作る必要があります。
models.pyは既存のスキーマ情報から逆生成します。
$ python manage.py inspectdb > models.py
これで、models.pyが生成されるので、見てみるとスキーマの情報が記載されていると思います。
あとは、マイグレーションで管理をするので、managed = False
を消していくだけになります。
マイグレーションファイルを作る
models.pyができたので、次にマイグレーションファイルを生成していきます。
下記のコマンドを実行すると 0001_initial.py
のマイグレーションファイルができます。
$ python manage.py makemigrations ${app_name}
マイグレーションを実行する
マイグレーションファイルができたので、マイグレーションを実行していきます。
基本的には、
$ python manage.py migrate ${app_name}
のコマンドでマイグレーションを実行しますが、今回の場合は、すでにテーブルが存在するので、
--fake-initial
オプションを使って初回のマイグレーションをダミーで流します。
$ python manage.py migrate ${app_name} --fake-initial
これで、移行作業は終わりになります。
あとは、適時、 models.py
を修正して、 makemigrations
でマイグレーションファイルを作成していく流れになります。