LINUX.ORG.RU

Конвертация БД и все, все, все

 , ,


0

1

Приветствую!

Пока в уме построил такую задачу:

есть БД MySQL от Noname CMS в это БД неким примитивным образом храняться данные про объекты недвижимости для сайта. Хотелось бы эту БД преобразовать в другой формат. Например, чтобы ее могу понять и прочитать нужный мне плагин Вордпресса.

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

Какие мели ждут нас там?!

★★★★★

В первую очередь посмотреть в структуру БД, понять как данные хранятся. Привести структуру БД в такой же вид, как у нужной тебе CMS.
Например, грубо говоря, если в Noname CMS заголовок объекта недвижимости хранится в поле object_name, а у вордпресса это post_title, переименовать столбец. Ну и добавить недостающие, которые в вордпрессе есть, а в noname cms нет.
Гугли ALTER TABLE.
Плюс, если в движке CMS используется хитрый способ хранения инфы (например, как у MediaWiki - диффами), ALTER TABLE уже не поможет, надо будет обрабатывать дополнительную логику.
Есть тонкости, думаю, о них подскажут

wasd
()

Наверняка у вордпресса есть что-то вроде api, какая-то функция, которая добавляет объекты.

Я бы читал данные из базы в скрипте и дергал эту функцию добавляя их вордпресс.

Можно сначала вытянуть данные и преобразовать в какой-нить json в качестве промежуточного формата.

pawnhearts ★★★★★
()

Копируешь обе БД на один и тот же MySQL сервер и выполняешь запрос типа insert into db1.table1 (...) select ... from db2.table2 ...

goingUp ★★★★★
()

Всё очень индивидуально.

r_asian ★☆☆
()
Ответ на: комментарий от wasd

В первую очередь посмотреть в структуру БД, понять как данные хранятся. Привести структуру БД в такой же вид, как у нужной тебе CMS.

Спасибо.

Видимо, это наиболее простой способ. Не факт, конечно, что взлетит, но стоит попробовать.

Twissel ★★★★★
() автор топика
Ответ на: комментарий от Twissel

Не взлететь не может, если ты всё сделаешь правильно.
Ну, это такое - в большинстве случаев там всё просто, и только в исключительных придётся изрядно попотеть.

wasd
()
Ответ на: комментарий от pawnhearts

Кстати, тоже хороший вариант. Селектим из базы Unknown CMS объекты, формируя их в угодный вордпрессу API (json/xml) и отправляя по URL апи.

wasd
()
Ответ на: комментарий от wasd

ОК, значит надо выспаться и приниматься за работу)

Twissel ★★★★★
() автор топика

запрос

Только здесь с мускулем возникает другая проблема: как «увидеть» обе БД одновременно.

Гугл не подсказал, например в таком „псевдокоде“

INSERT INTO `wp_estate.wp_posts(post_title)`
SELECT `s_description`  FROM `u519633785_armar.oc_t_item_description`
WHERE `fk_i_item_id` > 4;

И дальше никак...

Twissel ★★★★★
() автор топика
Ответ на: комментарий от Twissel

а ларчик просто открывался

INSERT INTO `wp_estate`.`wp_posts`(post_title)
SELECT `s_description`  FROM `u519633785_armar`.`oc_t_item_description`
WHERE `fk_i_item_id` > 4;

StackOverflow

Twissel ★★★★★
() автор топика
Ответ на: комментарий от goingUp

Только есть одно маленькое «но»: что делать со столбцами, которые есть в Wordpress, но нет в БД NoName CMS?

Twissel ★★★★★
() автор топика
Ответ на: комментарий от goingUp

Ну если ты сам не можешь ответить на этот вопрос то оставить незаполнеными?

Хм, да, если это не нарушит порядка вещей в БД самого Вордпресса.

В общем, еще подумаю. Как и чем их заполнить, чтобы все было цело...

Twissel ★★★★★
() автор топика
Ответ на: комментарий от goingUp

Неа, имхо, не все так просто, как хотелось бы.

Наверно, это как раз тот случай, когда проще нанять контенщика для переноса данных.

Twissel ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.