Làm cách nào để đổi tên một lĩnh vực?


7

Với Drupal 7, chúng tôi đã có mô-đun Đổi tên trường , nhưng điều này vẫn chưa được chuyển sang Drupal.

Vậy ma thuật SQL nào là cần thiết để đổi tên một trường trong Drupal 8?


1
Bạn có thể sẽ không đi quá xa với SQL thô (nhưng bạn cũng sẽ không có trong Drupal 7). Lưu trữ trường (bao gồm tên) và mối quan hệ với các loại / gói thực thể, được lưu trữ trong các chuỗi PHP được tuần tự hóa. Sử dụng API sẽ là tốt nhất
Clive

Cảm ơn bạn Clive. Tôi không theo kịp tốc độ với PHP hoặc API và sẽ không biết bắt đầu từ đâu Tôi sợ
MrPaulDriver

Bạn có thể làm điều này với bảng điều khiển drushal hoặc drupalquản lý cấu hình drupal , chỉ cần xuất cấu hình trang web của bạn, chỉnh sửa những gì bạn cần và nhập tương tự sau đó.
StevanRS

Câu trả lời:


13

Tôi đã không may phải làm điều này trước đây: P, và lời khuyên của tôi sẽ như sau:

Hãy quên việc đổi tên trường hiện có; tên máy nằm rải rác ở một số địa điểm khó chỉnh sửa khác nhau và có thể bạn sẽ bỏ lỡ một số lỗi và gặp phải các lỗi lạ. Ví dụ: nếu bạn chỉ đổi tên các bảng và cấu hình, API trường sẽ phù hợp khi nó cố xóa các bảng cũ và thấy chúng đã biến mất. Thông tin lược đồ được lưu trong kho lưu trữ khóa và không thể được xây dựng lại từ đầu, vì vậy nếu bạn thực hiện thay đổi thủ công, rất dễ bị rơi vào trạng thái bị hỏng.

Thay vào đó, hãy tạo lại trường với tên máy chính xác, sau đó sao chép dữ liệu bằng SQL và cuối cùng xóa trường cũ.

INSERT INTO node__field_new SELECT * FROM node__field_old;
INSERT INTO node_revision__field_new SELECT * FROM node_revision__field_old;

Đây là lời khuyên tốt. Tôi sẽ thử và báo cáo lại. Cảm ơn
MrPaulDriver

3
Ta Dah! Điều này là đơn giản và rắc rối miễn phí. Cảm ơn vì tiền boa.
MrPaulDriver

1

Về nhận xét mới nhất từ ​​StevanRS, nó không chỉ đơn giản hơn thế, bởi vì nếu bạn chỉ nhập sau khi đổi tên, nó sẽ thất bại vì trường ban đầu sẽ không tồn tại nữa. Vì vậy, đây là đề xuất của tôi:

  • Xuất cấu hình. Lưu tất cả các tệp với một số cấu hình cho trường. *
  • Xóa trường đó trên UI drupal.
  • Xuất cấu hình lại (với trường đã bị xóa)
  • Sao chép các tập tin đổi tên một lần nữa trên thư mục cấu hình.
  • Sau đó, bạn có thể nhập đúng :)

Các tập tin mẹo bạn cần lưu:

  • lĩnh vực.field.yourentity.yourfield
  • lĩnh vực.st Storage.yourentity.yourfield
  • core.entity_form_display.yourentity.yourfield
  • core.entity_view_display.yourentity.yourfield
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.