삭제 된 필드 복구


11

4 개의 필드가있는 내용 유형이 있으며 각 항목은 용어 참조입니다. 각각 4 개의 용어 참조가 할당 된 100 개의 노드가 있습니다. 관리자> 구조> content-types> mycontent-type ... 에서이 필드 중 하나를 실수로 삭제했습니다.이 100 개의 노드 모두 에서이 손실 된 필드에 포함 된 용어 참조가 손실됩니다.

데이터베이스 관리 모듈을 설치 한 후 삭제 된 필드에 대한 데이터베이스가 여전히 존재하고 "field_deleted_field_74"와 같은 이름으로 바뀌 었음을 알 수 있습니다.

  1. mysql을 사용하여이 데이터베이스의 이름을 "field_data_field_originalname"으로 다시 바꿀 수있었습니다. 즉, 삭제 된 필드에 원래 머신 이름을 사용합니다
  2. 또한이 데이터베이스에서 삭제 된 열의 값을 '1'에서 '0'으로 전환 할 수있었습니다.

"field_revision_field_74"와 같은 다른 '유령'데이터베이스로 위의 작업을 수행했습니다 ...

내 문제는 이제 내 이름이 변경된 필드가 내 콘텐츠 유형 관리 필드 표시 또는 관리자> 보고서> 필드 목록에서 기존 필드로 표시되지 않는다는 것입니다. 'drush field-info fields'를 실행하면 누락됩니다.

다시 가져 오려면 어떻게해야합니까? 편집해야 할 다른 데이터베이스가 있다고 가정합니다.

감사!


필드를 삭제하기 전에 전체 데이터베이스의 백업이 있습니까?
Ollie

불행히도. 그러나 문제를 해결했습니다.
iain maitland

답변:


14

좋은 질문이며 데이터가 여전히 사용 가능한 경우 삭제 된 필드를 롤백하는 쉬운 방법이 없다는 것은 놀라운 일입니다.

당신이 있다고 가정 :

  1. field_deleted_ * 테이블의 이름을 field_data_field_myfield 및 field_revision_field_myfield로 다시 바꿨습니다 (나중에 중요 함).
  2. 관련 데이터 테이블에서 'deleted'플래그가 1에서 0으로 업데이트되었습니다.

도 있습니다

  • field_config

메인 필드 구성

  • field_config_instance

특정 엔티티 번들의 필드 구성

'삭제 된'플래그를 조정해야 할 수도 있습니다.

예 :

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;

2
빠른 답변 감사합니다. field_config 및 field_config_instance 데이터베이스를 모두 편집하면 트릭이 발생했습니다.
iain maitland
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.