17 октября 2018 г. MySQL Миграции PostgreSQL Ubuntu

Миграция БД из MySQL в PostgreSQL с помощью pgloader

Почти все мои сервисы работают на Postgres, пришло время и этому блогу переехать с MySQL. Для миграции я использовал программу pgloader, которая написана на Сommon Lisp, мне она показалась довольно простой и удобной в использовании.

Установка pgloader на Ubuntu

apt update
apt install pgloader

Миграция структуры и данных

Войдем как пользователь postgres и запустим клиент:

sudo su - postgres
psql

В клиенте создадим пользователя USERNAME с паролем PASSWORD, наделим его правами (LOGIN - может логинится, NOSUPERUSER - не является суперпользователем, CREATEDB - может создавать БД). А также создадим одноименную с MySQL базу данных и по Ctrl+D выйдем:

postgres=# create role <USERNAME> password '<PASSWORD>' LOGIN NOSUPERUSER CREATEDB;
postgres=# create database <DBNAME> owner <USERNAME>;
Ctrl+D

Под пользователем postgres выполним:

pgloader "mysql://root:<MYSQL ROOT PASSWORD>@localhost/<DBNAME>" pgsql:///<DBNAME>
psql -d <DBNAME> -c 'ALTER DATABASE <DBNAME> SET search_path TO <DBNAME>, public;'

Всё, миграция закончена. С подробностями можно ознакомится в статье автора pgloader

Комментарии

Хех, если бы все было так просто. Описал бы уже в чем профит переезда на постгрю. И как жить с vaccuum, group by, когда нужно получить не только те поля, по которым группируешь. И last insert id уже завезли?

Статья о миграции, а не профитах конкретной бд, создай на пыхе топик, обсудим твои вопросы

Надо же отработала без нареканий. Ожидал какой то проблемы несовместимости типов как минимум. А тут БД взяла и мигрировала. Очень странно, надо искать подвох.

              COPY Threads Completion          4          4          0         46.909s 
                       Create Indexes        402        402          0         17.879s 
               Index Build Completion        402        402          0          3.984s 
                      Reset Sequences        185        185          0          0.128s 
                         Primary Keys        186        186          0          0.070s 
                  Create Foreign Keys          6          6          0          0.211s 
                      Create Triggers          0          0          0          0.000s 
                     Install Comments          0          0          0          0.000s 
-----------------------------------------  ---------  ---------  ---------  --------------
                    Total import time    6996112    6996112          0         54.179s

Оставьте свой комментарий

Markdown