Описан перенос базы данных на Windows. Для Linux-систем все значительно проще и большую часть материала можно пропустить.
Исходные данные: Python 3.5 Win32 установлен на Windows с помощью Anaconda.
Скрипт переноса данных работает только в Python 2.7, что приводит к необходимости создать дополнительное окружение.
Python 2.7
Примеры команд представленных ниже выполняются из командной строки Windows.
Список окружений:
[code]conda info —envs[/code]
Создание окружения:
[code]conda create -n py27 python=2.7 anaconda[/code]
Включение окружения:
[code]activate py27[/code]
Установка py-mysql2pgsql
Существует прекрасная разработка, которая позволяет быстро и без хлопот перенести базу данных MySQL в PostgreSQL напрямую или через дамп-файл. Репозиторий и инструкция здесь.
Для установки скрипта необходимо скачать и установить следующие пакеты:
- MySQL_python
- psycopg2
Включаем окружение с Python 2.7. Идем сюда, скачиваем бинарники пакетов и устанавливаем командами:
[code]
pip install MySQL_python-{версия}.whl
pip install psycopg2-{версия}.whl
[/code]
Чуть подробнее описано в статье psycopg2 или pygresql для python 3.5 на windows.
Затем устанавливаем py-mysql2pgsql:
[code]pip install py-mysql2pgsql[/code]
Запускаем:
[code]python py-mysql2pgsql[/code]
Если системе не удается найти скрипт, нужно указать полный путь.
Самым легким решением увидеть полный путь, вызвать удаление пакета и скопировать путь оттуда. Само удаление производить не надо.
Команда удаления:
[code]pip uninstall py-mysql2pgsql[/code]
При первом успешном запуске будет создан файл настроек в директории, из которой вызывали скрипт.
Правим созданный файл настроек:
[code]mysql2pgsql.yml[/code]
Запускаем:
[code]python py-mysql2pgsql[/code]
Простую базу данных скрипт переносит превосходно. Сам создает таблицы и индексы. Однако после переноса, важно все перепроверить вручную.