Điểm:0

Lỗi lạ "Định nghĩa thực thể và/hoặc trường không khớp"

lá cờ tn

Tôi biết có rất nhiều chủ đề khác về vấn đề này nhưng tôi tin rằng chủ đề của tôi là một chủ đề kỳ lạ và tôi đã dành ngày cuối cùng để gỡ lỗi nguyên nhân của nó cho đến nay, vì vậy hy vọng ai đó có thêm kiến ​​​​thức về lược đồ/lưu trữ trường có thể giúp tôi.

Đầu tiên, một chút nền tảng về những gì tôi đang làm. Tôi có một bộ cấu hình được đóng gói bằng cách sử dụng mô-đun tính năng và được triển khai dưới dạng một gói cho một số trang web khác của chúng tôi. Một phần của bộ tính năng này là một số loại nguồn cấp dữ liệu để nhập nội dung vào các nút. Khi tôi triển khai tính năng này trên 1 trang web, tôi gặp lỗi "Định nghĩa thực thể và/hoặc trường không khớp" cho trường feeds_item. Trên trang web khác tôi triển khai nó, tôi không gặp bất kỳ lỗi nào. Thực tế là nó có lỗi trên một cái, nhưng không phải cái kia là kỳ lạ.

Định nghĩa thực thể và/hoặc trường không khớp

Tôi truy tìm vấn đề để SqlContentEntityStorageSchema::requiresFieldStorageSchemaChanges. Đặc biệt, điều đang xảy ra là giá trị của $install_schema là một mảng trống trên trang web có lỗi nhưng có dữ liệu trên trang web không có lỗi.

  /**
   * {@inheritdoc}
   */
  chức năng công khai yêu cầuFieldStorageSchemaChanges(FieldStorageDefinitionInterface $storage_definition, FieldStorageDefinitionInterface $ original) {
    $table_mapping = $this->getTableMapping($this->entityType);

    nếu (
      $storage_definition->hasCustomStorage() != $ original->hasCustomStorage() ||
      $storage_definition->getSchema() != $ original->getSchema() ||
      $storage_definition->isRevisionable() != $ original->isRevisionable() ||
      $table_mapping->allowsSharedTableStorage($storage_definition) != $table_mapping->allowsSharedTableStorage($ original) ||
      $table_mapping->requiresDedicatedTableStorage($storage_definition) != $table_mapping->requiresDedicatedTableStorage($ original)
    ) {
      trả về ĐÚNG;
    }

    if ($storage_definition->hasCustomStorage()) {
      // Trường có bộ lưu trữ tùy chỉnh, vì vậy chúng tôi không biết liệu có thay đổi lược đồ hay không
      // cần hay không, nhưng vì theo lần kiểm tra ban đầu trước đó trong phần này
      // chức năng, không có gì thay đổi về định nghĩa mà chúng tôi quản lý, chúng tôi
      // trả về SAI.
      trả về SAI;
    }

    $current_schema = $this->getSchemaFromStorageDefinition($storage_definition);
    $this->processFieldStorageSchema($current_schema);
    $install_schema = $this->loadFieldSchemaData($ original);
    $this->processFieldStorageSchema($install_schema);

    trả về $current_schema != $install_schema;
  }

Nếu tôi kiểm tra bên trong giá trị cốt lõi bảng với các truy vấn này chọn * từ key_value nơi tập hợp như 'entity.storage_schema.sql' và đặt tên như 'node.field_schema_data.feeds_item'; nó cũng trống trên 1 nhưng không phải là cái khác:

Vì vậy, ở đâu đó, bằng cách nào đó, lược đồ chưa được cài đặt đúng cách trên một trang web. Tôi có thể sửa nó bằng cách cài đặt phát triển-thực thể-cập nhật mô-đun hoặc viết móc cập nhật chỉ đơn giản là lưu lại định nghĩa lưu trữ trường hiện có nhưng tôi hy vọng ai đó có hiểu biết sâu sắc về tại sao điều này đang xảy ra. Cảm ơn bạn!

Lưu ý Trang web có lỗi đang chạy trên Drupal 9.2.10 trong khi trang web không có lỗi đang chạy 9.2.11 nhưng tôi không chắc điều đó tạo nên sự khác biệt.

Ngoài ra, tôi nên chỉ ra rằng các trường thực sự được cài đặt tốt và đang hoạt động. Đó chỉ là lỗi không khớp mới là vấ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.