Перенос данных из БД MS Access в БД PostgreSQL

Данная статья описывает полный процесс перехода с БД MS Access в БД PostgreSQL.

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

Пошаговая инструкция по переносу данных в БД PostgreSQL

  1. Настроить утилиту переноса данных
  2. Создать пустую базу данных PostgreSQL см. инструкцию по созданию БД PostgreSQL
  3. Запустить утилиту переноса данных с помощью ярлыка Перенести данные в БД PostgreSQL 
    TransferUtil_ToPG_lnk.png
    либо запустить утилиту из командной строки TransferUtil.exe to-pg
  4. Запустите ПАУ и настройте подключение к базе данных PostgreSQL см. инструкцию по настройке рабочего места ПАУ

Описание процесса переноса данных утилиты переноса данных

Порядок переноса данных

  1. Подключение к базе данных MS Access указанной в файле конфигурации в параметре ma_dbpath;
  2. Формирование дампа исходной базы данных MS Access. Дамп исходной базы данных -access.ama.csv будет расположен в папке to-pg\output_[дата_переноса]\access.ama.csv;
  3. Подключение к СУБД PostgreSQL используя параметры pg_server, pg_port, pg_dbname, pg_dbuserи pg_dbpassword из файла конфигурации;
  4. Проверка существования БД;
  5. Проверка версии схемы данных БД, в том случае, если БД уже существует;
  6. Создание таблиц в соответствии со схемой данных;
  7. Перенос данных из дампа БД MS Access, полученного ранее.
  8. Завершение переноса.

Сообщения о ходе переноса данных

Этап Сообщение
Начало переноса данных из MS Access в PostgreSQL Начало переноса данных из БД MS Access в БД PostgreSQL
Проверка наличия БД MS Access Проверка наличия БД MS Access
БД MS Access существует БД MS Access существует - ОК
Получаем версию схемы данных базы MS Access Получили версию схемы данных из БД MS Access - OK
Начало подключения к БД MS Access Подключение к исходной БД MS Access
Конец подключения к БД MS Access Подключились к исходной БД MS Access - ОК
Начало формирования дампа Начали формировать дамп исходной БД - ОК
Окончание формирования дампа Дамп исходной БД сформирован - ОК
Начало проверки существования БД PostgreSQL Проверка наличия БД PostgreSQL
Конец проверки существования БД PostgreSQL БД PostgreSQL существует - ОК
Подключение к СУБД PostgreSQL Подключились к СУБД PostgreSQL
Получение номера версии БД PostgreSQL Получили версию схемы данных из БД PostgreSQL - OK
Проверка версии схемы данных БД Проверка версии схемы данных БД
По результату проверки версии схем данных совпадают Версии схем данных совпадают - ОК
По результату проверки версии схем, выявлено, что БД PostgreSQL пустая и туда можно переносить данные БД PostgreSQL пустая
Создание таблиц согласно версии схемы данных Созданы таблицы согласно схеме данных - ОК
Начало переноса данных из дампа БД MS Access Начали переносить данные из дампа БД
Закончили переносить данных из дампа БД MS Access Закончили переносить данные из дампа БД MS Access - ОК
Завершение переноса данных из MS Access в PostgreSQL Перенос данных завершен

Список сообщений об ошибках

Сообщение об ошибке Описание и рекомендации
Нет файла БД MS Access - Ошибка Проверьте права доступа для пути %appdata%\RussianIT\TransferUtil\to-pg
Не удалось подключиться к исходной БД MS Access - Ошибка Не удалось подключиться к исходной БД MS Access, указанной в параметре ma_dbpath файла конфигурации, необходимо проверить наличие файла БД
Введёны неверные логин и пароль пользователя - Ошибка Необходимо проверить параметры подключения указанные в параметрах pg_dbuser и pg_dbpassword в файле конфигурации
Нет доступа к СУБД PostgreSQL - Ошибка Необходимо проверить параметры подключения в конфиге pg_hba.conf
Не удалось подключиться к СУБД PostgreSQL - Ошибка Необходимо проверить параметры подключения указанные в параметрах pg_server, pg_port, pg_dbname, pg_dbuser и pg_dbpassword в файле конфигурации
БД PostgreSQL не существует - Ошибка БД PostgreSQL не создана, необходимо создать БД согласно инструкции
Версии схем данных не совпадают - Ошибка БД PostgreSQL уже была создана ранее и её версия отличается от версии БД MS Access, необходимо обновить уже существующую БД PostgreSQL в ПАУ, либо очистить базу, а затем произвести перенос.
Не удалось сформировать дамп исходной БД - Ошибка В ходе формирования дампа исходной БД MS Access возникла ошибка, подробное описание будет указано в файле TransferUtil.log
Не удалось создать таблицы в БД PostgreSQL - Ошибка В ходе создания необходимых таблиц в БД PostgreSQL произошла ошибка, подробное описание будет указано в файле TransferUtil.log
Не удалось перенести данные из дампа в БД PostgreSQL - Ошибка В ходе переноса данных из дампа БД MS Access возникла ошибка, подробное описание будет указано в файле TransferUtil.log