Tôi đang viết di chuyển để nhập dữ liệu nguồn dưới dạng đoạn văn.
Đây là quá trình di chuyển chính (đang hoạt động).
id: tài nguyên_chương_phần_văn bản
nhãn: Nhập nội dung từ cột resource.body trong cơ sở dữ liệu nguồn dưới dạng đoạn chapter_section_text.
nhóm_di chuyển: redacted_web
nguồn:
plugin: resource_chapter_section_text
khóa: di chuyển_web
tiến trình:
# một giá trị thực sẽ được đặt ở đây bằng cách di chuyển tài nguyên_chương_phần_văn bản_nội dung
# chúng ta phải thực hiện nó trong lần thứ hai để tránh tạo ra sự phụ thuộc vòng tròn
trường_văn bản/giá trị:
plugin: default_value
default_value: 'giữ chỗ'
trường_văn bản/định dạng:
plugin: default_value
default_value: 'plain_text'
điểm đến:
plugin: entity_reference_revisions:đoạn văn
default_bundle: chap_section_text
phụ thuộc:
thi hành:
mô-đun:
- redacted_migration
Lưu ý rằng trường_văn bản
đang được phổ biến với một giá trị giữ chỗ. Đó là vì dữ liệu nguồn cho trường đó cần được chuyển đổi theo một số cách nhất định trước khi tôi có thể nhập dữ liệu đó. Để tránh sự phụ thuộc vòng tròn, việc chuyển đổi này phải được thực hiện sau cùng chương_phần_văn bản
đoạn văn đã được nhập khẩu.
Vì vậy, tôi đang cố gắng viết một lần di chuyển thứ hai, thao tác này sẽ thực hiện lần di chuyển thứ hai trên cùng một bảng nguồn và sẽ cập nhật các đoạn được tạo bởi lần di chuyển đầu tiên. Đây là cuộc di cư đó.
id: resource_chapter_section_text_content
nhãn: Chuyển đổi nội dung của các đoạn resource_chapter_section_text từ pseudo-Markdown sang HTML và cập nhật các URL liên kết.
nhóm_di chuyển: redacted_web
nguồn:
plugin: resource_chapter_section_text_content
khóa: di chuyển_web
tiến trình:
Tôi:
plugin: di chuyển_lookup
di chuyển: resource_chapter_section_text
nguồn: section_id
trường_văn bản/giá trị: content_converted
trường_văn bản/định dạng:
plugin: default_value
default_value: 'full_html'
điểm đến:
plugin: entity_reference_revisions:đoạn văn
default_bundle: chap_section_text
ghi đè_properties:
- trường_văn bản/giá trị
- trường_văn bản/định dạng
di chuyển_phụ thuộc:
cần thiết:
- tài nguyên_chương_phần_văn bản
- bộ sưu tập_thuật ngữ
- tài liệu_node
- chủ đề
- nguồn
phụ thuộc:
thi hành:
mô-đun:
- redacted_migration
Như bạn có thể thấy, tôi đang chỉ định ID đoạn văn hiện có và sử dụng đích.overwrite_properties
để chỉ định các trường sẽ được cập nhật.
Tôi đã sử dụng thành công kỹ thuật tương tự trong một lần di chuyển khác để cập nhật các nút hiện có. Tuy nhiên, nó không hoạt động ở đây. Thay vào đó, Migrate dường như đang cố gắng tạo các đoạn văn mới. tôi nhận được lỗi này:
[lỗi] Drupal\Core\Database\IntegrityConstraintViolationException: SQLSTATE[23000]: Vi phạm ràng buộc toàn vẹn: 1062
Sao chép mục '3829' cho khóa 'PRIMARY': CHÈN VÀO "paragraphs_item" ("id", "revision_id", "type", "uuid", "langcode") GIÁ TRỊ (:db_insert_placeholder_0, :db_insert_placeholder_1, :db_insert_placeholder_2, :db_insert_placeholder_3 , :db_insert_placeholder_4);
Có thể làm điều này với các thực thể đoạn văn?