# Перенос данных из БД MS Access в БД PostgreSQL Данная статья описывает полный процесс перехода с БД MS Access в БД PostgreSQL. Для переноса данных из MS Access в PostgreSQL потребуется воспользоваться [утилитой переноса данных](https://support.russianit.ru/books/pomoshchnik-arbitrazhnogo-upravliaiushchego/page/ustanovka-utility-perenosa-dannykh). ## Пошаговая инструкция по переносу данных в БД PostgreSQL 1. [Настроить утилиту переноса данных](https://support.russianit.ru/books/pomoshchnik-arbitrazhnogo-upravliaiushchego/page/nastroika-utility-perenosa-dannykh) 2. Создать пустую базу данных PostgreSQL [см. инструкцию по созданию БД PostgreSQL](https://support.russianit.ru/books/pomoshchnik-arbitrazhnogo-upravliaiushchego/page/nastroika-subd-postgresql) 3. Запустить утилиту переноса данных с помощью ярлыка `Перенести данные в БД PostgreSQL`  либо запустить утилиту из командной строки `TransferUtil.exe to-pg` 4. Запустите ПАУ и настройте подключение к базе данных PostgreSQL [см. инструкцию по настройке рабочего места ПАУ](https://support.russianit.ru/books/pomoshchnik-arbitrazhnogo-upravliaiushchego/page/nastroika-rabochego-mesta-pau-dlia-raboty-s-subd-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 не создана, необходимо создать БД согласно [инструкции](https://support.russianit.ru/books/pomoshchnik-arbitrazhnogo-upravliaiushchego/page/nastroika-subd-postgresql) |
`Версии схем данных не совпадают - Ошибка` | БД PostgreSQL уже была создана ранее и её версия отличается от версии БД MS Access, необходимо обновить уже существующую БД PostgreSQL в ПАУ, либо очистить базу, а затем произвести перенос. |
`Не удалось сформировать дамп исходной БД - Ошибка` | В ходе формирования дампа исходной БД MS Access возникла ошибка, подробное описание будет указано в файле `TransferUtil.log` |
`Не удалось создать таблицы в БД PostgreSQL - Ошибка` | В ходе создания необходимых таблиц в БД PostgreSQL произошла ошибка, подробное описание будет указано в файле `TransferUtil.log` |
`Не удалось перенести данные из дампа в БД PostgreSQL - Ошибка` | В ходе переноса данных из дампа БД MS Access возникла ошибка, подробное описание будет указано в файле `TransferUtil.log` |