Как преобразовать БД mySql в таблицы формата Drupal - PullRequest
0 голосов
/ 24 сентября 2011

Привет, у меня есть несколько таблиц sql, и я хочу преобразовать их в «Drupal Node Format», но я не знаю, как это сделать. Кто-нибудь знает, по крайней мере, какие таблицы мне нужно написать, чтобы иметь полный узел со всеми ключами и т. Д.?

Я приведу пример:

У меня есть тезисы Объекты:

Аниме поле animeID поле animeName

Производитель идентификатор производителя поля поле originName

AnimeProducers поле animeID поле productID

Я использовал модуль CCK и создал в моем drupal новый Anime Content Type и новый Data Type Producer, которые существуют в объекте Anime.

Как я могу вставить все данные из моей простой базы данных mysql в drupal?

Извините за длинный пост, я хотел бы дать вам возможность понять мою проблему

Спасибо заранее за ваше время, чтобы прочитать мой пост

Ответы [ 3 ]

1 голос
/ 01 августа 2012

Вы можете использовать либо модуль Feeds для импорта плоских CSV-файлов, либо есть модуль под названием Migrate, который выглядит многообещающе (довольно интенсивно).Оба работают на Drupal 6 или 7.

0 голосов
/ 24 сентября 2011

Основными таблицами для данных свойств узла являются node и node_revision, посмотрите на столбцы в них, и должно быть достаточно очевидно, что нужно в них добавить.

Что касается полейВпрочем, их хранилище предсказуемо, так что вы сможете автоматизировать импорт (хотя я не завидую вам писать это!).Если ваше поле называется 'field_anime', его данные будут храниться в двух таблицах: field_data_field_anime и field_revision_field_anime, в которых указывается идентификатор объекта (в данном случае идентификатор узла), тип объекта (в самом случае «узел») иbundle (в данном случае имя вашего типа узла).Вы должны поддерживать обе таблицы в актуальном состоянии, чтобы обеспечить правильное функционирование системы ревизий.

Самый простой способ сделать это - использовать PHP и функции API узла:

/* This is for a single node, obviously you'd want to loop through your custom SQL data here */
$node = new stdClass;
$node->type = 'my_type';
$node->title = 'Title';
node_object_prepare($node);

// Fields
$node->field_anime[LANGUAGE_NONE] = array(0 => array('value' => $value_for_field));
$node->field_producer[LANGUAGE_NONE] = array(0 => array('value' => $value_for_field));
// And so on...

// Finally save the node
node_save($node);

Если вы используетеэтот метод Drupal будет обрабатывать много беспорядочных вещей для вас (например, автоматическое обновление таблицы taxonomy_index при добавлении поля термина таксономии в узел)

0 голосов
/ 24 сентября 2011

ммммм .... я думаю, вы можете экспортировать CVS из базы данных sql, а затем использовать

http://drupal.org/project/node_import

чтобы импортировать эти cvs-данные в узлы ..... мммм, я не знаю, есть ли другой не программный способ

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...