2013-04-06 1 views
1

Мне нужно импортировать старую базу данных в WordPress. Легко ли? Ну, не так просто, мне нужно сохранить один и тот же идентификатор сообщения, потому что я использую настраиваемую структуру permalink, которая включает в себя идентификатор сообщения.Импорт пользовательской базы данных в wordpress и сохранение идентификатора сообщения

Например: /%postname%+id-%post_id%.html.

Как я могу это сделать?

+0

@ САМ: При редактировании, пожалуйста, исправьте _everything_, который нуждается в исправлении в сообщении. Не просто удалите один тег. –

+0

@ S.L.Barth Извините, я собирался очистить вопросы тегов идентификаторов. – Mehraban

ответ

0

узнайте свой самый старый (и самый маленький идентификатор) в старой базе данных. давайте предположим, что это 45.

начать с новой установки WP и удалить «привет мир» пост так пост, post_meta и term_relationships таблицы не имеют ничего общего с этим «привет мир» пост

усечь таблицу сообщений и установить начальное значение до 45, так что первая запись вошла будет иметь ID 45.

начать миграцию, одна запись в то время

, прежде чем мигрировать вашу старую базу записи, вычислить разницу между тем, и предыдущей записи. например, если ваш следующий пост получил идентификатор 46, тогда 46-45 = 1. 1 хорошо, так что миграция обычно. (обычно запустите wp_insert) , когда вы заметите, что разница не 1, а затем создайте столько фиктивных записей, сколько необходимо. , например, если запись 49, то 49-45 = 4. Это означает, что вам нужно 3 фиктивных записи. Поэтому запустите 3 wp_inserts с фразой «для удаления» в заголовке сообщения. , а затем выполните 49-ю миграцию записей.

вы продолжаете так, пока не достигнете своей самой большой (самой молодой) записи в своем старом.

затем просто удалите все реквизиты с названием «для удаления». но использовать WP api на всем протяжении. так что реляционная целостность между таблицами поддерживается для вас.

+0

Я понимаю. Спасибо ! –

+0

Это может быть излишним - нет ничего, что помешало бы вам установить любой идентификатор, который вы хотите в таблице сообщений, хотя это автоинкремент. Если «старая» база данных - это WordPress, вы можете просто использовать mysqldump для создания файла экспорта, который вы можете импортировать непосредственно в новую базу данных. – doublesharp

1

Предполагая, что это обе базы данных WordPress, самый простой способ справиться с этим - использовать mysqldump для создания экспорта, а затем выполнить полученный файл SQL с вашей новой базой данных. По умолчанию он будет экспортировать все таблицы, поэтому, если вы просто хотите некоторые из них, вам нужно будет явно указать их. "Важные" столы для WordPress сообщений:

  • wp_posts - посты
  • wp_postmeta - разместить мету значения
  • wp_term_relationships - сообщения в таксономии
  • wp_term_taxonomy - Taxonomies
  • wp_terms - фактические теги и категории ценности

Для экспорта вашей недвижимости смените файл SQL, заменив USERNAME, PASSWORD и DATABASE соответствующим образом. Это приведет к падению/созданию/заполнению таблиц, поэтому, если вы просто хотите использовать данные, используйте опцию –no-create-info.

mysqldump -u USERNAME -pPASSWORD DATABASE > dump.sql 

Чтобы импортировать файл dump.sql в новую базу данных:

mysql -u USERNAME -pPASSWORD NEW_DATABASE < dump.sql 

Все идентификаторы базы данных будут сохранены.