Импорт устаревшей таблицы в базу данных Drupal - PullRequest
2 голосов
/ 18 августа 2010

У меня есть устаревшая база данных и таблицы, которые я хотел бы попробовать импортировать в Drupal.Вот пример структуры таблицы:

Table : Projects
 ProjectID
 ProjectName
 CountryID
 TypeID

ProjectID является первичным ключом, CountryID и TypeID являются внешними ключами, которые указывают на таблицы стран и типов соответственно.

Я думаю, что я бы сделал содержимое Projectsвведите сначала, отразите поля, присутствующие в устаревших таблицах, используя CCK. Моя единственная проблема - импортировать данные. Есть ли способ автоматизировать это?

Спасибо!

Ответы [ 3 ]

1 голос
/ 18 августа 2010

Если вы можете получить данные в формате CSV / TSV, Node Import должен сделать свое дело и ориентирован на разработчиков сайтов, а не на разработчиков.

0 голосов
/ 18 августа 2010

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

В противном случае вы можете написать базовый модуль, который будет последовательно проходить через базу данных и вставлять записи в узлы. Какой-то действительно простой псевдокод:

$node->title = $row['projectName'];
$node->type = 'project';
$node->country_field[0]['value'] = $row['country_name'];
if(save_node($node)) {
 set_message('Imported node');
}

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

0 голосов
/ 18 августа 2010

Модуль Migrate обрабатывает импорт из таблиц. У Migrate есть хуки для выполнения более сложных операций импорта, но вы должны иметь возможность достаточно просто получить данные, чтобы вам не нужны эти хуки (которые не очень хорошо документированы), создав новую таблицу из объединения существующих таблиц. Примерно так (не проверено):

CREATE TABLE combined SELECT * FROM Projects p 
LEFT JOIN Country c ON c.CountryID = p.CountryID
LEFT JOIN Type t ON t.TypeID = p.TypeID

Если вы решили, что хотите разделить вещи, используя страны и типы в отдельных типах контента, мой коллега написал довольно хорошее руководство по использованию ловушек миграции .

...