Перенос БД из MariaDB/MySQL в PostgreSQL с помощью pgLoader

Краткая инструкция об очень интересном и полезном инструменте pgLoader, который позволяет легко мигрировать базу данных MariaDB или MySQL в PostgreSQL.

Для начала нам понадобится развернуть небольшой стенд, к примеру, на Debian GNU/Linux, установив на него выше упомянутые СУБД.

Для стенда рекомендуется не особо экономить на ресурсах, так как это будет влиять на скорость переноса базы данных.

Установка MariaDB — читаем здесь: https://dondub.com/2021/05/zapusk-subd-mariadb-na-debian-10-9-i-ubuntu-server-21-04/

Установка PostgreSQL — здесь: https://dondub.com/2021/05/zapusk-subd-postgresql-v-debian-10-9/

После этого в MariaDB или MySQL создадим БД. Для этого заходим в консоль mysql:

# mysql -u root -p

создаём базу данных:

CREATE DATABASE my_database;

и выходим из консоли:

EXIT;

Затем из старого сервера заливаем дамп в базу данных my_database. Как делаются дампы можно почитать здесь: https://dondub.com/2021/07/damp-bazy-dannyh-mariadb-i-mysql/

Далее устанавливаем утилиту pgLoader

# apt install pgloader

Теперь создаём базу данных и пользователя в PostgreSQL

# su postgres -c "createuser pwprompt dbuser"
# su postgres -c "createdb -O dbuser my_database"

После этого создадим скрипт для переноса БД

# touch db_load.config

и в нём пропишем:

LOAD DATABASE
 FROM mysql://root:pASSwoRD@localhost:3306/my_database
 INTO postgresql://dbuser:pASSw0RD@localhost:5432/my_database
ALTER SCHEMA 'dbschema' RENAME TO 'public';

Выполняем скрипт

# pgloader db_load.config

По окончанию база данных PostgreSQL наполнится таблицами и данными.

Теперь выгружаем дамп и загружаем его на боевой сервер. Как это делается можно почитать здесь: https://dondub.com/2021/07/damp-bazy-dannyh-postgresql/

Всё должно заработать без проблем.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *