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 уже завезли?

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

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

Markdown