@andreychumak
junior

Syntax error: Как мигрировать из MySQL в Postgres?

Есть дамп базы MySQL - dump.sql, который мне отдали сторонние разработчики. Кодировка - cp1251.

Нужно ее мигрировать на postgresql.

Что делаю:

1) восстанавливаю дамп в базу(разработчики по-своему ее выгружают, поэтому решил сделать дамп самостоятельно)

2) делаю свой дамп

mysqldump --compatible=postgresql -u root catalog > dump.sql

3) конвертирую дамп для postgresql (знаю, что это всего лишь текстовый файл, но тем не менее просто восстановить из sql не получалось)
Делаю это утилитой https://github.com/lanyrd/mysql-postgresql-converter

python db_converter.py dump.sql pg_dump

4) Пытаюсь восстановить psql pg_database < pg_dump

На данный момент выходит такая ошибка

START TRANSACTION
SET
SET
SET CONSTRAINTS
invalid command \"?????????
ERROR:  syntax error at or near "0"
LINE 5:     "price" float NOT NULL DEFAULT '0',
                                            ^

Подскажите в чем проблема? как исправлять такие ошибки?
  • Вопрос задан
  • 440 просмотров
Пригласить эксперта
Ответы на вопрос 2
terrier
@terrier
Ну, видимо этот ваш загадочный питон-скриптик не учитывает все различия между mysql и psql, так что даже если вы исправите эту конкретную ошибку ( нужно убрать кавычки ), то вылезет куча других.
Я бы порекомендовал воспользоваться для конвертации дампа чем-нибудь из более проверенных инструментов
Ответ написан
tsklab
@tsklab
Здесь отвечаю на вопросы.
Делаю это утилитой https://github.com/lanyrd/mysql-postgresql-converter

invalid command \"?????????
Кодировка не подходит.
--default-character-set=utf8
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы