Нашел 3 скрипта на perl (похожие) - не конвертят. Кто-то ругается на неэкранированные \r\n, кто-то на "левый синтаксис"..
Как? Как это можно сделать более менее коротким способом?
Перечитал гугла и яндекса - нифига.
Заранее спасибо!
Спустя 34 минуты, 23 секунды (9.11.2010 - 09:28) sergeiss написал(а):
Элементарно, Ватсон!
Сначала создаёшь в Постгре структуру БД, тут придется ручками, потому что могут быть (и скорее всего они помешают) различия между БД. Например, автоинкрементные поля. Поэтому все создания таблиц - руками делаем!!! Никаких автоматизмов не будет.
Далее.
В MySQL есть команда "LOAD DATA INFILE", в Постгре есть аналогичная "COPY ... FROM". То есть, сначала "выливаешь" данные из MySQL в файлы, затем "заливаешь" их в Постгре.
Затем создаёшь индексы... И всё готово!
Кстати говоря, после заливки базы можно установить определенные "текущие" значения для автоинкрементных полей.
Подобную процедуру я периодически проделываю, только из Постгре в Постгре, при этом еще выливаю не всю БД, а её часть. Для того, чтобы у меня на ноуте была более-менее свежая версия данных. Из несколько-сотне-гигабайтной базы получаю БД в 30-40 ГБ. На это уходит не более суток на все процедуры.
И кстатит говоря, во время такой процедуры можно поменять кодировку данных в БД Для этого достаточно полученные (текстовые) файлы, в которых есть строки для конвертирования, перекодировать и потом залить в БД, в которой установлена нужная кодировка.
Сначала создаёшь в Постгре структуру БД, тут придется ручками, потому что могут быть (и скорее всего они помешают) различия между БД. Например, автоинкрементные поля. Поэтому все создания таблиц - руками делаем!!! Никаких автоматизмов не будет.
Далее.
В MySQL есть команда "LOAD DATA INFILE", в Постгре есть аналогичная "COPY ... FROM". То есть, сначала "выливаешь" данные из MySQL в файлы, затем "заливаешь" их в Постгре.
Затем создаёшь индексы... И всё готово!
Кстати говоря, после заливки базы можно установить определенные "текущие" значения для автоинкрементных полей.
Подобную процедуру я периодически проделываю, только из Постгре в Постгре, при этом еще выливаю не всю БД, а её часть. Для того, чтобы у меня на ноуте была более-менее свежая версия данных. Из несколько-сотне-гигабайтной базы получаю БД в 30-40 ГБ. На это уходит не более суток на все процедуры.
И кстатит говоря, во время такой процедуры можно поменять кодировку данных в БД Для этого достаточно полученные (текстовые) файлы, в которых есть строки для конвертирования, перекодировать и потом залить в БД, в которой установлена нужная кодировка.
Спустя 12 часов, 45 минут, 10 секунд (9.11.2010 - 22:13) kirik написал(а):
Эх, таки придется вручную переносить структуру.. Думал можно избежать каким-нибудь магическим способом
Спасибо за совет!
Спасибо за совет!
Спустя 10 часов, 24 минуты, 29 секунд (10.11.2010 - 08:37) kirik написал(а):
Фуф, 2 таблицы сделал для тестов В одной 46 столбцов в другой 70 - задолбался переносить.
А заполнить данными как ты посоветовал не вышло.. Ругался сначала на неправильные переносы строк (я так и не понял какие, ибо в файле было все нормально). Перенес по старинке, через скрипт - запрос всех значений из mysql, вставка в PG Небольшой тестик можно тут посмотреть.
А заполнить данными как ты посоветовал не вышло.. Ругался сначала на неправильные переносы строк (я так и не понял какие, ибо в файле было все нормально). Перенес по старинке, через скрипт - запрос всех значений из mysql, вставка в PG Небольшой тестик можно тут посмотреть.