web-dev-qa-db-ja.com

key_value_expireテーブルの目的は何ですか?

Drupal8では、key_value_expireテーブルデータはどのような目的に使用されますか?データベースバックアップから除外できますか?

開発中、「drush sql-dump --ordered-dump」を使用してデータベースをバックアップし、「cache *」などのテーブルを除外したため、ノード/ページにいくつかのマイナーなコンテンツ変更を加えたため、リビジョン)、データベースを再ダンプすると、git diffはkey_value_expireテーブル内のすべてのデータが変更されたと言っています。

key_value_expireは、データの行数という点で、Drupalの大きなテーブルの1つであるため、このテーブルのデータがサイトの小さな変更ごとに完全に変更されると、Gitのストレージ要件が膨らみます。

また、各Drupalテーブルの機能/目的の詳細な説明はありますか?

事前にどうもありがとうございました。

5
kvjava1

フォームキャッシュと更新ステータスのほかに、key_value_expireテーブルは主にプライベートおよび共有一時ストアによって使用されます。そこでは、このデータの目的が何であるかについての適切な説明が見つかります。

クラスPrivateTempStore

特定の所有者の一時データを格納および取得します。

PrivateTempStoreを使用すると、リクエスト間で一時的な非キャッシュデータを利用できます。 PrivateTempStoreのデータは、1つのキー/値コレクションに格納されます。 PrivateTempStoreデータは、所定の期間が経過すると自動的に期限切れになります。

PrivateTempStoreはキャッシュとは異なります。キャッシュ内のデータはまだ永続的に保存されておらず、再構築できないためです。通常、PrivateTempStoreは、後で他の場所に永続的に保存される進行中の作業を保存するために使用されます。保存する準備ができていないデータ、マルチステップフォーム、または進行中の複雑な構成への変更を自動保存します。

PrivateTempStoreは、すべてのキーが特定のユーザーに対して一意であることが保証され、ユーザーがデータを共有できないという点でSharedTempStoreとは異なります。ユーザー間でデータを共有したり、ロックに使用したりするには、\ Drupal\user\SharedTempStoreを使用します。

参考: https://api.drupal.org/api/drupal/core%21modules%21user%21src%21SharedTempStore.php/class/SharedTempStore/8.2.xhttps:// api.drupal.org/api/drupal/core!modules!user!src!PrivateTempStore.php/class/PrivateTempStore/8.2.x

6
4k4