Конвертация большой БД

И так ситуация:

Необходимо обновиться с 0.4 до актуальной версии.
Имеем базу размером под два гига. База от ls 0.4 версии.
Вариант конвертации через веб сразу же отпадает, так как время выполнения скрипта придется увеличить на бесконечность). Есть вариант конвертнуть через консольку, но не совсем понимаю как правильно это сделать. Имел ли кто дело с такими размерами и как вы конвертировали БД? Как правильно конвертировать большую БД через консоль? Либо другие варианты?

8 комментариев

avatar
Что значит конвертнуть? Кодировку? Так она вроде изначально UTF8 поддерживала.
avatar
Обновить структуру — переконвертировать — новая версия
avatar
Есть специальные дамперы, для больших баз. Одна из них Sypex Dumper.
  • aex
  • 0
avatar
А как мне он поможет обновить базу с 0.4 по 1.0.1?
Как бы бекап я ручками через консоль сделал.
avatar
Вроде понял. Но пару дней назад, видел как сам ort говорил, мол использовать файл ковертации напрямую (загружать в бд), а не через скрипт инсталляции не есть правильно.
avatar
верно, т.к. помимо выполнения sql там есть логика на php
как вариант создать объект установщика от класса Install и вызвать метод ConvertDatabase($sFilePath,$aParams) github.com/livestreet/livestreet/blob/0.5.1/install/index.php#L1175, передав нужные параметры и предварительно подключившись к БД
avatar
Конвертировал 0.4->0.5->1.0 базу в 600M, инсталер справился — просто временно пришлось поднять max_execution_time.

А вообще — через консоль, по одной-две команды за раз, поглядывая в код инсталлера — часть конвертера можно вынести из кода в sql, часть воспроизвести «вручную» в отдельном скрипте.

как вариант создать объект установщика от класса Install и вызвать метод ConvertDatabase($sFilePath,$aParams)

но это же по сути то же самое, что через веб конвертировать — все запросы в рамках этого одного скрипта выполняются?
avatar
но это же по сути то же самое, что через веб конвертировать — все запросы в рамках этого одного скрипта выполняются?
да, но уже без веб-сервера и ограничений по времени
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.