Điểm:0

Migrate accessing source fields by name instead of by selector?

lá cờ in

I'm working on the MongoDB source plugin and I'm able to do the migration, but I have to make strange compromises. When defining the source fields, I have to set name the same as selector, like this.

fields:
  -
    name: _id
    label: 'Unique ID'
    selector: _id

That works, but if I decide to change field name and keep selector, the migration fails.

fields:
  -
    name: node_id
    label: 'Unique ID'
    selector: _id

I get this error.

'node_id' is defined as a source ID but has no value.

Why is that? Why is the source array accessed by name instead of by selector?

lá cờ in
Điều này phụ thuộc rất nhiều vào việc triển khai plugin nguồn. Ví dụ: trong nguồn JSON của `migrate_plus`, `bộ chọn` là xpath dẫn đến dữ liệu và `name` là tốc ký. Tuy nhiên, đối với `migrage_source_csv`, `name` phải là giá trị tiêu đề. Nó cũng có `nhãn` nhưng không có `bộ chọn`. Vì vậy, bạn sẽ phải đào sâu vào việc triển khai nguồn để xem nó cần những thuộc tính nào và nó làm gì.
Điểm:1
lá cờ ru

Bạn có thể thay đổi tên của các trường nguồn, nhưng bạn không được thay đổi tên của các trường nguồn được sử dụng làm ID nguồn.

nguồn:
  lĩnh vực:
    -
      tên: _id
      nhãn: 'ID duy nhất'
      bộ chọn: _id
  id:
    _id: <- đây là vấn đề, bạn không thể đổi tên các trường nguồn được sử dụng tại đây
      loại: số nguyên

Trong lần di chuyển đầu tiên, mô-đun tạo một bảng ánh xạ migration_map_MIGRATION_ID cho mỗi hàng nguồn từ xa <=> thực thể cục bộ. Sau đó, bạn không thể thay đổi tên của các trường nguồn được sử dụng làm ID nguồn nữa.

Cách duy nhất để giải quyết vấn đề này là khôi phục hoàn toàn, sau đó xóa các bảng di chuyển đó theo cách thủ công (bao gồm cả bảng migration_message_MIGRATION_ID ) và sau đó bạn có thể bắt đầu lại.

lá cờ in
@hundri cảm ơn vì đã giải thích điều này. Tuy nhiên, tham số nguồn hoàn toàn không hoạt động, thậm chí không hoạt động đối với các trường khác. Từ những gì Joseph đã nói và từ nguồn khác, tôi nghĩ rằng plugin nguồn đó phải tự triển khai chức năng đó. Nhưng vấn đề là tôi có thể tìm và hướng dẫn/hướng dẫn về cách thực hiện điều đó.
Điểm:0
lá cờ in

Bộ chọn được xử lý bởi các trình bổ trợ bộ xử lý dữ liệu. Ban đầu, tôi đã thử sử dụng đối tượng trình vòng lặp được cung cấp bởi đối tượng bộ sưu tập MongoDB. Điều đó hoạt động, nhưng bộ chọn không được hỗ trợ. Sau đó, tôi thấy cách bộ xử lý dữ liệu tùy chỉnh được tạo trong mô-đun Migrate plus, để phân tích cú pháp json và tạo một bộ xử lý dữ liệu dựa trên đó. Về cơ bản, tôi đang sử dụng bộ lặp bộ sưu tập để nhận toàn bộ json và sau đó trình xử lý dữ liệu tùy chỉnh của tôi hoạt động với json đó theo cách tương tự như cách mà trình xử lý dữ liệu json của Migrate Plus thực hiện.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.