1

新しいプロジェクトに 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

既存のテーブルの前にアプリの名前を追加しているようです。既存のテーブルで使用可能な移行を行うには、どの手順を実行する必要がありますか?

4

1 に答える 1