Khôi phục một trường đã xóa


11

Tôi có một loại nội dung với 4 trường, mỗi trường là một tham chiếu hạn. Có 100 nút, mỗi nút được gán 4 tham chiếu hạn. Tôi đã vô tình xóa một trong các trường này khỏi quản trị viên> cấu trúc> loại nội dung> loại liên kết của tôi ... dẫn đến tất cả 100 nút bị mất tham chiếu thuật ngữ mà trường bị mất này chứa.

Sau khi cài đặt mô-đun Quản trị cơ sở dữ liệu, tôi có thể thấy rằng cơ sở dữ liệu cho trường đã xóa của tôi vẫn còn, nó đã được đổi tên thành một cái gì đó như "field_delatted_field_74"

  1. Sử dụng mysql tôi đã có thể đổi tên cơ sở dữ liệu này thành "field_data_field_origenname" - tức là sử dụng tên máy ban đầu cho trường bị xóa
  2. Hơn nữa, tôi đã có thể chuyển giá trị của cột bị xóa trong cơ sở dữ liệu này từ '1' sang '0'.

Tôi đã thực hiện các thao tác trên với cơ sở dữ liệu 'ma' khác mà tôi thấy được gọi là "field_Vvision_field_74" ...

Vấn đề của tôi bây giờ là trường được đổi tên của tôi không xuất hiện dưới dạng trường có sẵn trên màn hình trường quản lý loại nội dung của tôi cũng như trong danh sách quản trị> báo cáo> trường. Khi tôi chạy 'trường thông tin drush', nó cũng bị thiếu.

Làm thế nào để tôi mang nó trở lại? Tôi giả sử rằng có một cơ sở dữ liệu khác đề cập đến nó mà tôi cần chỉnh sửa.

Cảm ơn!


Bạn có bất kỳ bản sao lưu của toàn bộ cơ sở dữ liệu trước khi bạn xóa các trường không?
Ollie

Không may măn. Tuy nhiên tôi đã giải quyết vấn đề.
iain maitland

Câu trả lời:


14

Một câu hỏi hay và đáng ngạc nhiên là không có cách nào dễ dàng hơn để khôi phục lại một trường đã xóa, do dữ liệu vẫn có sẵn.

Giả sử bạn có:

  1. Đổi tên các bảng field_delatted_ * trở lại field_data_field_myfield và field_Vvision_field_myfield (sau này cũng quan trọng)
  2. Đã cập nhật cờ 'đã xóa từ 1 thành 0 trong các bảng dữ liệu liên quan.

Ngoài ra còn có

  • field_config

Cấu hình trường chính

  • field_config_instance

Cấu hình trường trên một gói thực thể cụ thể.

Bạn cũng có thể cần điều chỉnh cờ 'đã xóa':

ví dụ:

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
Cảm ơn bạn đã phản hồi nhanh chóng. Chỉnh sửa cả cơ sở dữ liệu field_config và field_config_instance đã thực hiện thủ thuật này.
iain maitland
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.