Восстановление Kiwi Backup завершается с ошибкой Python
Я экспортирую базу данных json, выполняя команды, объясненные здесь: http://kiwitcms.org/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/
Я использую последнюю версию киви.
- docker exec -it kiwi_web / bin / bash -c '/Kiwi/manage.py sqlflush | /Kiwi/manage.py dbshell '
2.cat database.json | docker exec -i kiwi_web /Kiwi/manage.py loaddata --format json -
и я получаю эту ошибку:
Traceback (most recent call last):
File "/venv/lib/python3.6/site-packages/django/db/models/options.py", line 564, in get_field
return self.fields_map[field_name]
KeyError: 'description'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/venv/lib/python3.6/site-packages/django/core/serializers/json.py", line 69, in Deserializer
yield from PythonDeserializer(objects, **options)
File "/venv/lib/python3.6/site-packages/django/core/serializers/python.py", line 116, in Deserializer
field = Model._meta.get_field(field_name)
File "/venv/lib/python3.6/site-packages/django/db/models/options.py", line 566, in get_field
sh-4.2$ cat database.json | ./manage.py loaddata --format json -
Traceback (most recent call last):
File "/venv/lib/python3.6/site-packages/django/db/models/options.py", line 564, in get_field
return self.fields_map[field_name]
KeyError: 'description'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/venv/lib/python3.6/site-packages/django/core/serializers/json.py", line 69, in Deserializer
yield from PythonDeserializer(objects, **options)
File "/venv/lib/python3.6/site-packages/django/core/serializers/python.py", line 116, in Deserializer
field = Model._meta.get_field(field_name)
File "/venv/lib/python3.6/site-packages/django/db/models/options.py", line 566, in get_field
raise FieldDoesNotExist("%s has no field named '%s'" % (self.object_name, field_name))
django.core.exceptions.FieldDoesNotExist: Classification has no field named 'description'
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "./manage.py", line 12, in <module>
execute_from_command_line(sys.argv)
File "/venv/lib/python3.6/site-packages/django/core/management/__init__.py", line 381, in execute_from_command_line
utility.execute()
File "/venv/lib/python3.6/site-packages/django/core/management/__init__.py", line 375, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/venv/lib/python3.6/site-packages/django/core/management/base.py", line 316, in run_from_argv
self.execute(*args, **cmd_options)
File "/venv/lib/python3.6/site-packages/django/core/management/base.py", line 353, in execute
output = self.handle(*args, **options)
File "/venv/lib/python3.6/site-packages/django/core/management/commands/loaddata.py", line 72, in handle
self.loaddata(fixture_labels)
File "/venv/lib/python3.6/site-packages/django/core/management/commands/loaddata.py", line 113, in loaddata
self.load_label(fixture_label)
File "/venv/lib/python3.6/site-packages/django/core/management/commands/loaddata.py", line 168, in load_label
for obj in objects:
File "/venv/lib/python3.6/site-packages/django/core/serializers/json.py", line 73, in Deserializer
raise DeserializationError() from exc
django.core.serializers.base.DeserializationError: Problem installing fixture '-':
2 ответа
В какой версии Kiwi TCMS вы делали резервную копию?
Похоже, что резервная копия из более старой версии, потому что 6.5 поставляется с миграциями, которые удаляют поля Build.description и Classification.description!
Я не уверен, что технически возможно справиться с этим изящно. Пожалуйста, отправьте сообщение о проблеме на GitHub, чтобы мы могли исследовать более подробно и дать ссылку на эту ветку SO.
Обходной путь для вас - запустить не последнюю версию TCMS Kiwi, а версию, в которой вы сделали резервную копию. Затем восстановите данные, обновите до последней версии, запустите миграцию, которая изменит схему БД, а затем снова выполните резервное копирование.
Если вы не держите свой старый образ докера, вам придется создать его из исходного кода.
Мне не удалось найти товар, а не описание.
Traceback (most recent call last): File "/venv/lib/python3.6/site-packages/django/db/models/options.py", line 575, in get_field
return self.fields_map[field_name]
KeyError: 'product'