Не удалось импортировать дамп Postgres — ошибка ‘недопустимый синтаксис ввода для типа’ json

#postgresql

#postgresql

Вопрос:

У меня возникла проблема с восстановлением дампа, взятого из базы данных Postgres. Команда, которую я использую, это:

psql -d importantdb -U postgres -f importantdb.dmp -h localhost -p 6432

И ошибка, которую я получаю,:

 psql:importantdb.dmp:316814878: ERROR:  invalid input syntax for type json
DETAIL:  Token ""ocr_result" is invalid.
CONTEXT:  JSON data, line 1: ...0, "distance": 0.0, "timecode": 0.44, "ocr_result
COPY search_frames, line 289143606, column phash_matches: "[{"score": 1500.0, "distance": 0.0, "timecode": 0.04, "ocr_result": {}, "material_id": 1604, "index_..."
 

Размер дампа составляет около 5 ТБ. Я проверил версии, и как база данных, из которой был взят дамп, так и новая, имеют одну и ту же версию. Исходная база данных теперь исчезла, поэтому мне нужно иметь возможность восстановить этот файл, если это возможно. Поскольку это была база данных разработчика, в ней не было ничего, кроме одноразового дампа, который был взят в конце проекта.

Любой совет с благодарностью получен.

Комментарии:

1. Это одноразовая проблема, т. Е. Работает ли она, если вы удалите строку 289143606 или она жалуется в другом месте?

2. Что такое версия Postgres? Какой тип данных для столбца phash_matches JSON или JSONB? Этот фрагмент JSON вставляется здесь (Postgres 12) в обоих json и jsonb . У вас есть только дамп обычного текста?

3. @Bergi — хорошее предложение, попробовал и получил ту же ошибку в строке 289143605, так что, похоже, это постоянная проблема.

4. В тестовой настройке можете ли вы CREATE таблицу, а затем COPY , скажем, первые десять строк или около того данных из файла дампа? Есть ли разница в кодировке от исходной настройки?

5. Приносим извинения за поздний ответ, ребята, и, возможно, спасибо за помощь. Углубляясь в файл, это пример строк, с которыми он борется: 257148165 2020-08-28 08:42:59.448275 /apps/tmp/storage/57/file-1598604179448275673-3713101889932116939-864523902.jpg N 2020-08-28 08:42:59.548637 2020-08-28 08:42:59.548637 N t N 57 N N f 3713101889932116939 864523902 [] N N N N /apps/tmp/storage/57/file-1598604179448275673-3713101889932116939-864523902.jpg N N я предполагаю, что это N управляющие символы, которые его нарушают.