bugfix> django > 投稿

wagtail-1.9をwagtail-2.0に、Django-1.10.6をDjango-2.0にアップグレードしようとしていますが、このエラーが発生しています。

   delay = not old_field.is_relation
    AttributeError: 'NoneType' object has no attribute 'is_relation'

古い移行ファイルを削除したりリセットしたりしたくないのは、古い移行ファイルを削除したりリセットしたりするとデータが失われるためです。

これはエラーの詳細です

Operations to perform:
  Apply all migrations: admin, auth, contenttypes, core, faq, home, mailqueue, sessions, taggit, testimonial, wagtailadmin, wagtailcore, wagtaildocs, wagtailembeds, wagtailforms, wagtailimages, wagtailredirects, wagtailsearch, wagtailusers
Traceback (most recent call last):
      File "manage.py", line 11, in <module>
        execute_from_command_line(sys.argv)
      File "/home/razia/.virtualenvs/web-dj2/lib/python3.6/site-packages/django/core/management/__init__.py", line 371, in execute_from_command_line
        utility.execute()
      File "/home/razia/.virtualenvs/web-dj2/lib/python3.6/site-packages/django/core/management/__init__.py", line 365, in execute
        self.fetch_command(subcommand).run_from_argv(self.argv)
      File "/home/razia/.virtualenvs/web-dj2/lib/python3.6/site-packages/django/core/management/base.py", line 288, in run_from_argv
        self.execute(*args, **cmd_options)
      File "/home/razia/.virtualenvs/web-dj2/lib/python3.6/site-packages/django/core/management/base.py", line 335, in execute
        output = self.handle(*args, **options)
      File "/home/razia/.virtualenvs/web-dj2/lib/python3.6/site-packages/django/core/management/commands/migrate.py", line 159, in handle
        pre_migrate_state = executor._create_project_state(with_applied_migrations=True)
      File "/home/razia/.virtualenvs/web-dj2/lib/python3.6/site-packages/django/db/migrations/executor.py", line 79, in _create_project_state
        migration.mutate_state(state, preserve=False)
      File "/home/razia/.virtualenvs/web-dj2/lib/python3.6/site-packages/django/db/migrations/migration.py", line 85, in mutate_state
        operation.state_forwards(self.app_label, new_state)
      File "/home/razia/.virtualenvs/web-dj2/lib/python3.6/site-packages/django/db/migrations/operations/fields.py", line 144, in state_forwards
        delay = not old_field.is_relation
    AttributeError: 'NoneType' object has no attribute 'is_relation'

回答 1 件
  • 移行には、手動での介入が必要になる場合があります。プロジェクトソロで作業している場合、「移行倒産」を宣言し、新しく作成した移行を--fake-initialオプションで実行することで、データを失うことなく移行を最初から再作成できます。

    詳細はここにあります。最初にそれを読むことをお勧めします。

    https://docs.djangoproject.com/en/2.0/topics/migrations/#initial-migrations

あなたの答え