F#ck dump system

29 июля 2008 в 17:08
Аватар пользователя Oboggy Oboggy 0 6

Вчера заливал готовый drupal-сайт на хостинг. Нужно было перекинуть БД через интерфейс phpmyadmin (по другому никак). Все стопорилось на дампе таблицы locales_target. За ночь я проклял интернет-провайдера, хостинг-провайдера, разрабов mysql и phpmyadmin Smile

Для тех, кто может столкнуться с этим:
У себя__

  1. удаляете на сайте русский язык
  2. делаете бэкап БД через dumper, исключая таблицы locales_source и locales_target

На хостинге__

  1. импортируете бэкап БД через phpmyadmin
  2. заливаете сайт на сервер
  3. [имя пользователя, пароль, имя базы храняться в settings.php]
  4. создаете таблицы locales_source и locales_target при помощи sql запросов
    CREATE TABLE `locales_source` (
      `lid` int(11) NOT NULL auto_increment,
      `location` varchar(255) NOT NULL default '',
      `textgroup` varchar(255) NOT NULL default 'default',
      `source` blob NOT NULL,
      `version` varchar(20) NOT NULL default 'none',
      PRIMARY KEY  (`lid`),
      KEY `source` (`source`(30))
    ) ENGINE=MyISAM AUTO_INCREMENT=3986 DEFAULT CHARSET=utf8 AUTO_INCREMENT=3986 ;
    CREATE TABLE `locales_target` (
      `lid` int(11) NOT NULL default '0',
      `translation` blob NOT NULL,
      `language` varchar(12) NOT NULL default '',
      `plid` int(11) NOT NULL default '0',
      `plural` int(11) NOT NULL default '0',
      PRIMARY KEY  (`language`,`lid`,`plural`),
      KEY `lid` (`lid`),
      KEY `plid` (`plid`),
      KEY `plural` (`plural`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8;

    *запросы можно получить через экспорт таблицы в phpmyadmin

  5. добавляете русский язык

Комментарии

Что за база была? У меня макс пока было 87 мб в bzip2 (сама база форума ~ 20 метров, плюс поисковый индекс), нормально всё обрабатывается, и кодировки правильно импортирует/экспортирует.

29 июля 2008 в 23:20

Обычная база ~2МБ, не больше, но выдал километровую ошибку, при восстановлении, кажется (давно было)...
Создание бэкапа - проходит нормально, а при восстановлении ошибка. Причем восстановить хотела прямо сразу, не отходя от кассы, но тест не удался...

30 июля 2008 в 21:42

Бывают такие проблемы.
Спасало выставление сравнения базы в UTF8. У хостеров всегда win.
Пару раз даже сам дамп ручками правил. Правда, не помню, что там было.
Помогает также раздельный перенос.
Еще всегда чищу таблицы cache - они иногда здоровенные, больше чем вся остальная инфа.

30 июля 2008 в 5:16

Я тоже чищу, что только можно и оптимизирую таблицы.
Можно также делать дамп только одной или нескольких таблиц, если они большие.
Экспериментально вычислил, что, если архив дампа больше 200 кб, то phpMyAdmin не может его на сервере обработать.
Поэтому использую Sypex dumper или подобные.
Вот моя статья о восстановлении дампа на сервере с описанием разных методов: Восстановливаем базу данных.

30 июля 2008 в 12:32