BlogSpreading главная   |   Блог: Блоговодство

Меняем префиксы у таблиц wordpress

December 5th, 2007 Nikolay Tyuhskov

Недавно поимел отличный трех часовой секс опыт переноса одного блога wordpress на другой хостинг. Но нет худа без добра, теперь я знаю и могу рассказать вам про прикол с префиксами таблиц в вордпрессе.

Азы: Вордпресс использует таблицы для хранения своих данных в бд. Для удобства все таблицы начинаются с одного префикса, который вы можете изменить в файле wp-config.php, по умолчанию там указан ‘wp_’ в качестве префикса.

// You can have multiple installations in one database if you give each a unique prefix
$table_prefix = ‘wp_’; // Only numbers, letters, and underscores please!

Зачем это нужно? Ну тут есть две причины, первая - вы можете хранить в этой базе данных другие таблицы (не-вордпресса) - что бы они не затирали друг-друга при совпадании имен. Вторая - данная возможность позволяет использовать 1 базу данных для хранения данных несколькох копий вордпресса, таким образом можно иметь два-три блога и использовать под это дело только 1 бд.

А проблемы собственно у вас начнутся если вы захотите изменить префикс таблиц для уже существующего блога. Мне это понадобилось когда я переносил блог с на новый хостинг где уже крутится два других блога. Оба они использовали одну и туже дб, первый блог с префиксом по умолчанию, второй с уникальным. Переносимый блог разумется тоже имел префик по умолчанию. Алгоритм действий

  1. Открываем phpMyAdmin на старом хостинге добавляем префикс ко всем таблицам блога
  2. Дампим таблицы и восстанавливаем их на новом хостинге, я использую Dumper Lite и весьма доволен.
  3. Редактируем config.php, не забывая менять префикс.
  4. Я еще попутно обновлял вордпресс, так как на старом хостинге стояла старая версия, а тут уже новую залил
  5. Логинимся в админ панель и офигиваем - нам доступны только Dashboard and Profile, как будто мы потерияли все админские права :)

Так вот для того что бы правильно изменить префикс таблиц у уже работающего блога и не потерять админских прав делаем следующее

  1. Меняем префикс у всех таблиц в бд используя, к примеру, phpMyAdmin
  2. Обновиляем префикс в config.php.
  3. Открываем в phpMyAdmin таблицу wp_usermeta (wp_ это префикс у вас может быть другой) и меняем в колонке meta_key все вхождения старого префикса на новый. То есть если старый префикс wp_ а новый b2_wp_ то меняем строку wp_capabilities на b2_wp_capabilities, и rus_wp_autosave_draft_ids на bs_rus_wp_autosave_draft_ids.
  4. То же самое делаем для таблцы wp_options и колонки option_name там помоему только одно вхождение (wp_user_roles)
  5. После этого уже можно логинится.

Между 2 и 3 пунктом лучше не пытатся войти в админ интерфейс, тогда вордпресс делает новые записи в таблицах… как их редактировать - незнаю, я увидев это убил все таблицы этого блога и востановил заново с дампа.

Да и обязательно сделайте бекап (дамп бд) перед этим манипуляциями. Я в процессе кликнул не туда в пхпМайАдмине - и бевозвратно убил данные двух блогов - а это не один месяц написания постов и комментарии…:) Делать бекап перед началом работ - очень полезная привычка.

P.S. а если вы приобновлении вордпресса с 1.х на 2х видите ошибку “You do not have sufficient permissions to access this page” поздравляю, вам сюда.


Если вам понравился этот пост и вы хотите читать меня в будущем вы можете подписаться на RSS или, мы можем доставлять вам новые посты прямо в ваш почтовый ящик. Давайте растить блоги вместе!