Не удалось восстановить БД

Я пытался восстановить резервную копию на новый сервер, но возникли ошибки.

Лог находится здесь: Ubuntu Pastebin

Ошибка, возможно, следующая:

PG::UniqueViolation: ERROR:  could not create unique index "unique_index_categories_on_slug"
DETAIL:  Key (COALESCE(parent_category_id, '-1'::integer), slug)=(5, ) is duplicated.

Я подумал, что это проблема с БД, но я не вносил в неё изменений. Я просто скачал архив резервной копии, но восстановил его неправильно.

Пожалуйста, помогите!

Существует другая ветка с похожей проблемой.

Это странная проблема.

Многие из нас решили её, просто продолжая попытки.

Попробуйте несколько раз, и, возможно, в один из разов ошибка не возникнет.

Возможно, ваша проблема отличается, но она похожа на ошибки базы данных, с которыми мы сталкивались при восстановлении.

Похоже, что в скриптах восстановления есть ошибка или какой-то сбой в используемой системе базы данных PostgreSQL.

Насколько странно это решение… Блин!
Можно ли отредактировать SQL-файл, чтобы всё было нормально?

Я имею в виду, есть ли способ игнорировать дублирующиеся ключи?

А после отката к предыдущей версии или бета-версии лог стал следующим:

EXCEPTION: Compression::Strategy::ExtractFailed[2019-10-16 07:53:52] /var/www/discourse/lib/compression/strategy.rb:89:in `block in extract_file'
/var/www/discourse/lib/compression/strategy.rb:85:in `open'
/var/www/discourse/lib/compression/strategy.rb:85:in `extract_file'
/var/www/discourse/lib/compression/strategy.rb:26:in `block (2 levels) in decompress'
/usr/local/lib/ruby/site_ruby/2.6.0/rubygems/package/tar_reader.rb:65:in `each'
/var/www/discourse/lib/compression/strategy.rb:18:in `block in decompress'
/var/www/discourse/lib/compression/tar.rb:26:in `get_compressed_file_stream'
/var/www/discourse/lib/compression/strategy.rb:15:in `decompress'
/var/www/discourse/lib/compression/pipeline.rb:26:in `block in decompress'
/var/www/discourse/lib/compression/pipeline.rb:24:in `each'
/var/www/discourse/lib/compression/pipeline.rb:24:in `reduce'
/var/www/discourse/lib/compression/pipeline.rb:24:in `decompress'
/var/www/discourse/lib/backup_restore/restorer.rb:141:in `decompress_archive'
/var/www/discourse/lib/backup_restore/restorer.rb:60:in `run'
/var/www/discourse/lib/backup_restore.rb:166:in `block in start!'
/var/www/discourse/lib/backup_restore.rb:163:in `fork'
/var/www/discourse/lib/backup_restore.rb:163:in `start!'
/var/www/discourse/lib/backup_restore.rb:22:in `restore!'
/var/www/discourse/app/controllers/admin/backups_controller.rb:119:in `restore'

Почему это проблема? Я ничего не менял в tar-файле.

Посмотрите здесь:

Большое спасибо за эту функцию извлечения!

Не могли бы вы помочь мне с ошибкой дублирования ключа? Или есть способ исправить этот SQL в psql?

@daniel, я думаю, что в миграции по ссылке FIX: Add unique index to prevent duplicate slugs for categories · discourse/discourse@c71da3f · GitHub необходимо убедиться, что значения столбца уникальны, прежде чем создавать уникальный индекс.

@Rasin, это должно быть исправлено начиная с:

Спасибо, что обратили на это наше внимание, и приносим извинения за любые неудобства. Дайте нам знать, если у вас возникнут другие проблемы.

Да, я уже говорил вам: это странная ситуация.

Но у нескольких из нас это сработало, как вы можете прочитать здесь:

Не знаю, совпадает ли ваша ситуация, так как ошибка похожа, но не совсем такая же.

@usulrasolas отметил, что он отредактировал скрипт, добавив SQL-запросы для исправления.

А я (и другие) ничего не меняли, просто пробовали несколько раз.

Это странно, я понимаю, но, возможно, дело в проблемах с таймингом или истечением времени.

Мы не знаем.
Разработчики изучают проблему.

Спасибо за все ваши предложения! С нетерпением ждём новых обновлений.