SELTA/SELTAEXECONVERT

Материал из Etersoft wiki
Перейти к: навигация, поиск


Конвертор

Данная утилита позволяет переносить данные из MS SQL Server в PostgreSQL и обратно.

Производится перенос только данных, структуру базы (таблицы, индексы, хранимые процедуры) требуется создавать отдельно (Для 1С 7.7 это делается при помощи конфигуратора, подробнее смотрите в разделе Перенос данных из MS SQL Server в PostgreSQL для 1С 7.7).

Перенос данных производится через промежуточный дамп в формате CSV. Фактически, необходимо сначало выгрузить данные (таблицы) в CSV-дамп (текстовые файлы) из базы, а затем загрузить их в другую.

На следующем рисунке представлено главное окно утилиты:


selta_convert.png


"PostgreSQL > CSV" - выгрузка данных из PostgreSQL в CSV-дамп

"MS SQL Server > CSV" - выгрузка данных из MS SQL Server в CSV-дамп

"CSV > PostgreSQL" - загрузка данных из CSV-дампа в PostgreSQL

"CSV > MS SQL Server" - загрузка данных из CSV-дампа в MS SQL Server


CSV-дамп имеет следующий формат:

- все таблицы выгружаются в текстовые файлы (на каждую таблицу по одному файлу, имена файлов соответствуют именам таблиц)
- дополнительно создается файл _list_tables.inf который содержит список всех таблиц
- все записи экранированы кавычками
- все кавычки внутри записей дублируются
- столбцы разделяются знаком ";" (точка с запятой)
- строки разделяются знаком переноса на новую строку
- кодировка файлов – ASCII


При нажатии кнопки копирования данных из Базы в CSV-дамп открывается следующее окно:


selta_convert_go_csv.png


Здесь необходимо ввести параметры подключения к базе и указать путь, по котрому будет сохранен дамп: по указанному вами пути будет создан каталог с именем базы, и уже в него будут помещены файлы CSV-Дампа.

При нажатии кнопки Выполнить начнется копирование данных, это может занять очень продолжительное время, до нескольких часов для очень больших баз. Во время копирования будет отображаться диалоговое окно, показывающее статус операции: какая таблица копируется в данный момент, сколько таблиц уже скопировано из скольки.


При нажатии кнопки копирования данных из CSV-Дампа в базу открывается окно:


selta_convert_go_db.png


Здесь так же указываются параметры подключения к базе данных и путь к CSV-Дампу - путь к файлу _list_tables.inf, который содержит вспомогательную информацию.

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


Если в дампе таблиц больше, чем в базе данных (так бывает, если Дамп делался с работающей БД 1С, а восстанавливается в "чистую" конфигурацию) будет возвращена ошибка


selta_convert_error_exist.png


Для избежание подобной ошибки, установите флажок "Пропускать таблицы отсутствующие в базе".


Загрузка CSV дампа в MS SQL Server выполняется аналогично.