PostgreSQL: Загрузка 1C данных из sql-бэкапа

1. M.B.A. 02.02.19 23:52 Сейчас в теме
Всем добрый день.
Умерла база (шифратор), имеется бэкап в sql-формате.
Проблема, что при загрузке psql --dbname=buh --username=postgres < 1.sql
выдает ошибку
ERROR: lenght for type mchar/mvarchar must be at least 1
LINE 7: _code mvarchar(0) NOT NULL,

SET client_encoding = 'UTF8';
SET standard_conforming_strings = off;
SET check_function_bodies = false;
SET client_min_messages = warning;
SET escape_string_warning = off;
SET default_tablespace = '';
SET default_with_oids = false;

SET search_path = "public", pg_catalog;

CRE ATE TABLE "_acc15" (
"_idrref" bytea NOT NULL,
"_version" int4 NOT NULL,
"_marked" bool NOT NULL,
"_predefinedid" bytea NOT NULL,
"_parentidrref" bytea NOT NULL,
"_code" mvarchar(0) NOT NULL,
"_description" mvarchar(0) NOT NULL,
"_orderfield" mvarchar(0) NOT NULL,
"_kind" numeric(1,0) NOT NULL,
"_offbalance" bool NOT NULL,
"_fld455" bool NOT NULL,
"_fld456" mvarchar(0) NOT NULL,
"_fld10900" numeric(7,0) NOT NULL,
"_fld457" bool NOT NULL,
"_fld458" bool NOT NULL,
"_fld459" bool NOT NULL,
"_fld460" bool NOT NULL
);
ALT ER TABLE "_acc15" OWNER TO "postgres";
выдает ошибку
ERROR: lenght for type mchar/mvarchar must be at least 1
LINE 7: _code mvarchar(0) NOT NULL,

Из форумов нашёл описание подобной ошибки.
Ошибка возникает из-за того, что PostgreSQL отсутствует специальный тип данных "mvarchar" добавляемый патчем. Если же вы используйте сборку от Ethersoft, то проблема чаще всего вызвана тем, что вы создаёте базу данных из pgAdmin, а не из 1C. Базу данных нужно создавать с помощью 1C.
Сборка PostgreSQL от 1с, база создана из 1С, но в пустой присутствуют не все таблицы. Те, которые уже есть - заливаются данными без проблем, а вот тех, которые нет - не создаются.

Кто-нибудь сталкивался с подобной проблемой и поборол её?
Найденные решения
4. M.B.A. 03.02.19 19:45 Сейчас в теме
Решено. Для записи. Нашел в интернете пару таких же вопросов, следовательно проблема очень редкая, но встречается.
Возможно проблема pg_dump старых версий, но были неправильно выгружены переменные mvarchar(0) и mchar(0). Они не могут быть нулевой величины.
Решилось заменой в дампе на значения неопределенной величины (mvarchar и mchar). Данные загружены, 1С в рабочем состоянии, выгрузка в dt прошла.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Timur.V 78 03.02.19 13:46 Сейчас в теме
Создай пустую базу 1С на PostgreSQL.
Она должны запускаться и открываться.
После этого - останавливаем кластер 1с (сервер 1с).
А потом, попробуй в неё залить бэкап.
И запускаем службу 1с на кластере 1с.
3. M.B.A. 03.02.19 13:59 Сейчас в теме
(2) Да, конечно, это я сделал.
Сборка PostgreSQL от 1с, база создана из 1С, но в пустой присутствуют не все таблицы. Те, которые уже есть - заливаются данными без проблем, а вот тех, которые нет - не создаются.

Получается частично рабочая база - отсутствуют некоторые ссылочные данные, ТиС выдает критическую ошибку отсутствия таблиц. Надеялся, что ТиС создаст отсутствующие таблицы, а я в них залью данные, но нет.
4. M.B.A. 03.02.19 19:45 Сейчас в теме
Решено. Для записи. Нашел в интернете пару таких же вопросов, следовательно проблема очень редкая, но встречается.
Возможно проблема pg_dump старых версий, но были неправильно выгружены переменные mvarchar(0) и mchar(0). Они не могут быть нулевой величины.
Решилось заменой в дампе на значения неопределенной величины (mvarchar и mchar). Данные загружены, 1С в рабочем состоянии, выгрузка в dt прошла.
5. ansh15 03.02.19 21:47 Сейчас в теме
(4) Можете сообщить здесь версии платформы 1С, конфигурации и PostgreSQL? Чтобы иметь представление о том, на каких версиях ПО может случиться такое безобразие.
6. M.B.A. 05.02.19 17:50 Сейчас в теме
(5) PostgreSQL 9.4, выгрузка осуществлялась автоматически через pg_dump. Насчет опций выгрузки не могу сказать, сервер неработоспособен.
7. Fox-trot 158 05.02.19 19:12 Сейчас в теме
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот