SELTA/SELTAEXECONVERT
Конвертор
Утилита переносит данные из MS SQL Server в PostgreSQL и обратно. Переносятся только данные: структуру базы (таблицы, индексы, хранимые процедуры) создают отдельно — для 1С 7.7 Конфигуратором, см. Перенос данных из MS SQL Server в PostgreSQL для 1С 7.7.
Перенос идёт через промежуточный CSV-дамп: сначала таблицы выгружаются из одной базы в текстовые файлы, затем загружаются в другую.
Главное окно утилиты:
- «PostgreSQL → CSV» — выгрузка данных из PostgreSQL в CSV-дамп;
- «MS SQL Server → CSV» — выгрузка данных из MS SQL Server в CSV-дамп;
- «CSV → PostgreSQL» — загрузка CSV-дампа в PostgreSQL;
- «CSV → MS SQL Server» — загрузка CSV-дампа в MS SQL Server (при выключенной SELTA).
Формат CSV-дампа:
- каждая таблица — в отдельном текстовом файле с именем таблицы;
- файл
_list_tables.infсодержит список всех таблиц; - все значения заключены в кавычки, кавычки внутри значений удваиваются;
- столбцы разделяются точкой с запятой
;, строки — переводом строки; - кодировка — кодировка Windows (ANSI; для русской Windows — CP1251).
Окно выгрузки из базы в CSV-дамп:
Укажите параметры подключения к базе и путь, куда сохранить дамп: там будет создан каталог с именем базы, в него лягут файлы дампа. «Выполнить» начинает копирование; для очень больших баз оно занимает до нескольких часов. В окне состояния видно, какая таблица копируется и сколько уже скопировано.
Окно загрузки CSV-дампа в базу:
Укажите параметры подключения к базе и путь к файлу _list_tables.inf дампа. Загрузка занимает больше времени, чем выгрузка.
Если в дампе таблиц больше, чем в базе (дамп делался с работающей базы 1С, а загружается в «чистую» конфигурацию), будет ошибка:
Чтобы её избежать, установите флажок «Пропускать таблицы, отсутствующие в базе».
При загрузке в PostgreSQL проверяется длина строк mvarchar(n): значение длиннее столбца даёт ошибку value too long for type mvarchar(n).
То же из командной строки — SeltaCmd.exe.