Миграция БД из 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 уже завезли?
Статья о миграции, а не профитах конкретной бд, создай на пыхе топик, обсудим твои вопросы
Надо же отработала без нареканий. Ожидал какой то проблемы несовместимости типов как минимум. А тут БД взяла и мигрировала. Очень странно, надо искать подвох.
Оставьте свой комментарий