SELTA/CSVDump
Перенос данных из MS SQL Server в PostgreSQL для 1С 7.7
Самый простой способ загрузки данных в базу — штатная выгрузка и загрузка самой 1С (Конфигуратор → Администрирование → Выгрузить/Загрузить данные). Это делается так же, как при работе с MS SQL Server или DBF (пошаговая инструкция).
Если база на MS SQL Server очень большая и её невозможно выгрузить в zip-архив, перенесите данные утилитой Конвертор. Перенос идёт в два этапа: создание структуры базы в PostgreSQL и перенос самих данных.
Создание структуры базы данных
Создайте на сервере пустую базу со схемой SELTA: selta-pg-setup create-db buh на сервере Linux или «Создать БД» в Центре управления.
Запустите 1С 7.7, создайте новую информационную базу и откройте её в Конфигураторе. В Администрирование → Параметры базы данных SQL укажите параметры подключения к PostgreSQL (подключение 1С) и созданную базу.
Загрузите .md-файл конфигурации, для которой переносите данные, и сохраните её. При этом создаются все таблицы, индексы и хранимые процедуры. Запускать полученную конфигурацию в режиме Предприятия не требуется.
Перенос самих данных
Запустите Центр управления SELTA, в главном меню выберите Утилиты → Конвертор:
Нажмите «MS SQL Server → CSV», укажите параметры подключения к MS SQL Server с исходной базой и папку на клиенте, куда будут скопированы данные:
Нажмите «Выполнить» и дождитесь окончания: копирование всех таблиц может занять продолжительное время.
Затем нажмите «CSV → PostgreSQL» и укажите параметры подключения к базе, в которой сохранена ваша конфигурация:
Нажмите «Выполнить» и дождитесь окончания (для больших баз — до нескольких часов). После этого база готова к работе: запускайте 1С.
Если в дампе таблиц больше, чем в базе (дамп делался с работающей базы 1С, а загружается в «чистую» конфигурацию), будет ошибка:
Чтобы её избежать, установите флажок «Пропускать таблицы, отсутствующие в базе».
Современный PostgreSQL проверяет длину строк mvarchar(n) при загрузке: значение длиннее столбца даёт ошибку value too long for type mvarchar(n), а не сохраняется, как в старых сборках Postgre@Etersoft 9.2. Исправьте такие данные в исходной базе.
, порядок немного отличается — см. перенос распределённой базы.
Загрузка CSV-дампа в MS SQL Server выполняется аналогично (при выключенной SELTA).