python manage.py syncdb; python manage.py migrate --all
新しいデータベースで実行すると中断する南部の移行を実行しています。ただし、 2回実行すると問題なく通過します!最初の試みで、私は得る
DoesNotExist: ContentType matching query does not exist. Lookup parameters were {'model': 'mymodel', 'app_label': 'myapp'}
失敗した後、私はデータベースに行きますselect * from django_content_type
が、確かにそれは十分です
13 | my model | myapp | mymodel
次に、移行を実行するpython manage.py syncdb; python manage.py migrate --all
と動作します!
では、どうすれば 2 回目でしか機能しない移行を行うことができたのでしょうか? ちなみに、これは適切なグループを管理アプリに入れるデータ移行です。移行内の次の方法はそれを壊しています:
@staticmethod
def create_admin_group(orm, model_name, group_name):
model_type = orm['contenttypes.ContentType'].objects.get(app_label='myapp', model=model_name.lower())
permissions = orm['auth.Permission'].objects.filter(content_type=model_type)
group = orm['auth.Group']()
group.name = group_name
group.save()
group.permissions = permissions
group.save()
(移行ファイルは既存の作業プロジェクトから取得されます。つまり、ずっと前に schemamigration --initial を実行していたことを意味します。データベース スキーマと初期データを新しいデータベースに複製しようとしているだけです。)