Восстановить удаленное поле

У меня есть тип содержимого с 4 полями, каждый из которых является ссылкой на термины. Каждому из 100 узлов назначены 4 терминальных ссылки. Я случайно удалил одно из этих полей из типа admin>> content-types> mycontent-type ..., в результате чего все 100 узлов потеряли термин ссылки, в котором содержалось это потерянное поле.

После установки модуля Database Admin я увидел, что база данных для моего удаленного поля все еще присутствует, она была переименована в что-то вроде «field_deleted_field_74»

  1. Используя mysql, я смог переименовать эту базу данных обратно в «field_data_field_originalname», то есть используя исходное имя машины для удаленного поля.
  2. Кроме того, мне удалось переключить значение удаляемого столбца внутри этой базы данных с '1' на '0'.

Я сделал это с другой базой данных «призраков», которую я обнаружил, что было вызвано что-то вроде «field_revision_field_74» ...

Теперь моя проблема заключается в том, что мое поле переименования не отображается в качестве ранее существовавшего поля в моем окне управления содержимым типа контента или в списке admin> reports>. Когда я запускаю «поля ввода-info поля», он также отсутствует.

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

Спасибо!

12 голосов | спросил iain maitland 25 MaramTue, 25 Mar 2014 01:16:16 +04002014-03-25T01:16:16+04:0001 2014, 01:16:16

1 ответ


14

Хороший вопрос, и удивительно, что нет более простого способа отбросить удаленное поле, учитывая, что данные все еще доступны.

Предполагая, что у вас есть:

  1. Переименовали таблицы field_deleted_ * в поле field_data_field_myfield и field_revision_field_myfield (последнее также важно).
  2. Обновлен флаг 'deleted' от 1 до 0 в соответствующих таблицах данных.

Существует также

  • field_config
  

Основная конфигурация поля

  • field_config_instance
  

Конфигурация поля для конкретного пакета объектов.

Вам может понадобиться также отрегулировать флаг «deleted»:

например:

UPDATE field_config SET deleted = 0 where field_name = 'field_my_deleted_field';
UPDATE field_config_instance SET deleted = 0 where field_name = 'field_my_deleted_field';
TRUNCATE TABLE cache_field;
ответил David Thomas 25 MaramTue, 25 Mar 2014 01:26:15 +04002014-03-25T01:26:15+04:0001 2014, 01:26:15

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132