web-dev-qa-db-ja.com

段落:保存時に参照されるエンティティエラー

私は最近Drupal 8.6.2および段落8.x-1.3に更新しました。

段落フィールドを持つコンテンツタイプがあります。既存のノードを更新しようとすると、次のエラーメッセージが表示されます。

The referenced entity (user: 21) does not exist.

  • 既存の段落はユーザーを直接参照していません。
  • ユーザー21は存在しません。
  • ユーザー21はノード作成者ではありません。
  • ノードを更新できるのは、すべてのタイプの段落のallを削除した場合のみです。
  • 保留中のdb更新またはエンティティ更新はありません。

何かが正しく更新されなかったように感じますが、更新を確認/再実行する方法がわかりません。 (8.6.2の更新を展開したときに実行される更新がいくつかありました。)

UPDATE:以前のリリースとDBの状態にロールバックし、stillエラー(誰も気付かない)を取得するため、更新とは関係ありません。

更新2:drupal.orgのチケット

3
Tim

ユーザー21は削除されましたが、21は、まだパラグラフテーブルのuid列の値として格納されていました。 uidを既存のユーザー(23)のものに変更すると、問題が解決しました。

UPDATE paragraphs_item_field_data SET uid = 23 WHERE uid = 21;
UPDATE paragraphs_item_revision SET revision_uid = 23 WHERE revision_uid = 21;
UPDATE paragraphs_item_revision_field_data SET uid = 23 WHERE uid = 21;

SQLを実行し、キャッシュを空にして、編集ページを再読み込みします。

注:他のテーブルにもuid 21が含まれていますが、(注目すべき)悪影響はありません。

UPDATE file_managed SET uid = 23 where uid = 21;
UPDATE node_field_data SET uid = 23 where uid = 21;
UPDATE node_field_revision SET uid = 23 where uid = 21;
UPDATE node_revision SET revision_uid = 23 where revision_uid = 21;

そしてcontribからの2つ:

UPDATE crop_revision SET revision_uid = 23 where revision_uid = 21;
UPDATE redirect SET uid = 23 where uid = 21;
1
Tim