新しいプロジェクトに Django 1.7 を使用したいと考えています。私はすでに多くのレコードを持つデータベースを持っています。
多くの Django チュートリアルでは、新しいプロジェクトから移行システムを使用する方法を示しています。
私の場合、django-admin startapptodo
を使用し、という名前の既存のテーブルを使用しますnotesnote
。inspectdb を使用してnotesnote
クラスをダンプし、それを書き込みますtodo/models.py
class NotesNote(models.Model):
title = models.CharField(max_length=100)
text = models.TextField()
pub_date = models.DateTimeField()
authors = models.CharField(max_length=10)
その後
python manage.py makemigrations todo
todo/migrations/0001_initial.py
次に生成する
python manage.py migrate --fake todo
偽の移行を行います (テーブルが既に存在しているため)。
次に、テーブルのフィールドを修正したい場合は、「カテゴリ」フィールドを追加します
category = models.CharField(max_length=30)
次に、次の方法で 0002 移行差分を生成します。
python manage.py makemigrations todo
ただし、移行を行うと
python manage.py migrate todo
以下のようなエラーが出ました。
django.db.utils.OperationalError: そのようなテーブルはありません: todo_notesnote
既存のテーブルの前にアプリの名前を追加しているようです。既存のテーブルで使用可能な移行を行うには、どの手順を実行する必要がありますか?