[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как перенести БД из MySQL в PostgreSQL?
kirik
Решил потестить постгрю, блин.. 13 часов просидел безрезультатно.
Нашел 3 скрипта на perl (похожие) - не конвертят. Кто-то ругается на неэкранированные \r\n, кто-то на "левый синтаксис"..
Как? Как это можно сделать более менее коротким способом?
Перечитал гугла и яндекса - нифига.

Заранее спасибо!



Спустя 34 минуты, 23 секунды (9.11.2010 - 09:28) sergeiss написал(а):
Элементарно, Ватсон! smile.gif


Сначала создаёшь в Постгре структуру БД, тут придется ручками, потому что могут быть (и скорее всего они помешают) различия между БД. Например, автоинкрементные поля. Поэтому все создания таблиц - руками делаем!!! Никаких автоматизмов не будет.
Далее.
В MySQL есть команда "LOAD DATA INFILE", в Постгре есть аналогичная "COPY ... FROM". То есть, сначала "выливаешь" данные из MySQL в файлы, затем "заливаешь" их в Постгре.
Затем создаёшь индексы... И всё готово!

Кстати говоря, после заливки базы можно установить определенные "текущие" значения для автоинкрементных полей.

Подобную процедуру я периодически проделываю, только из Постгре в Постгре, при этом еще выливаю не всю БД, а её часть. Для того, чтобы у меня на ноуте была более-менее свежая версия данных. Из несколько-сотне-гигабайтной базы получаю БД в 30-40 ГБ. На это уходит не более суток на все процедуры.
И кстатит говоря, во время такой процедуры можно поменять кодировку данных в БД smile.gif Для этого достаточно полученные (текстовые) файлы, в которых есть строки для конвертирования, перекодировать и потом залить в БД, в которой установлена нужная кодировка.

Спустя 12 часов, 45 минут, 10 секунд (9.11.2010 - 22:13) kirik написал(а):
Эх, таки придется вручную переносить структуру.. Думал можно избежать каким-нибудь магическим способом smile.gif

Спасибо за совет!

Спустя 10 часов, 24 минуты, 29 секунд (10.11.2010 - 08:37) kirik написал(а):
Фуф, 2 таблицы сделал для тестов smile.gif В одной 46 столбцов в другой 70 - задолбался переносить.
А заполнить данными как ты посоветовал не вышло.. Ругался сначала на неправильные переносы строк (я так и не понял какие, ибо в файле было все нормально). Перенес по старинке, через скрипт - запрос всех значений из mysql, вставка в PG smile.gif Небольшой тестик можно тут посмотреть.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.