使用 Django-2 升级 wagtail-2 时不会影响旧的迁移文件。我得到这个 'NoneType' 对象没有属性 'is_relation'
While upgrading wagtail-2 with Django-2 without effecting old migrations file. I am getting this 'NoneType' object has no attribute 'is_relation'
我正在尝试将 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'
迁移有时需要一些手动干预。如果您单独处理一个项目,您可以通过 运行 使用 --fake-initial 选项新创建的迁移来声明 "migration bankruptcy" 并从头开始重新创建迁移而不会丢失数据。
这里有更多细节,我建议先阅读它:
https://docs.djangoproject.com/en/2.0/topics/migrations/#initial-migrations
我正在尝试将 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'
迁移有时需要一些手动干预。如果您单独处理一个项目,您可以通过 运行 使用 --fake-initial 选项新创建的迁移来声明 "migration bankruptcy" 并从头开始重新创建迁移而不会丢失数据。
这里有更多细节,我建议先阅读它:
https://docs.djangoproject.com/en/2.0/topics/migrations/#initial-migrations