Drupal 7 – приклад масової зміни значень полів у БД

Поширити

Наведу SQL-приклад оновлення значення поля атрибута alt зображення (ImageField) в базі даних системи, на основі значення Title ноди в масовому порядку:

UPDATE `префикс_field_data_ИмяПоля`,`префикс_node`
SET
`префикс_field_data_ИмяПоля`.`ИмяПоля_alt`= `префикс_node`.`title`
WHERE
`префикс_field_data_ИмяПоля`.`entity_id` = `префикс_node`.`nid`/>

Ось як це виглядає у дії:

UPDATE
`d7_field_data_field_img_1600x1200`,`d7_node`
SET
`d7_field_data_field_img_1600x1200`.`field_img_1600x1200_alt`= `d7_node`.`title`
WHERE
`d7_field_data_field_img_1600x1200`.`entity_id` = `d7_node`.`nid`

Тут:

  • field_img_1600x1200 – ім’я мого CCK-поля;
  • d7 – префікс таблиць Drupal 7, заданий при установці CMS.

Використовуються таблиці:

  • d7_field_data_field_img_1600x1200 – містить деякі значення поля field_img_1600x1200;
  • d7_node – звідси я беру заголовки нсд.

Важливе зауваження. Щоб уникнути можливих проблем перед выполением всіх описаних маніпуляцій створіть повні резервні копії як бази даних, так і файлів “движка”.

Залишити відповідь

Цей сайт використовує Akismet для зменшення спаму. Дізнайтеся, як обробляються ваші дані коментарів.