cache_ *を安全に空にできますか?


15

データベースを移動するときに大きすぎる場合があります。問題を引き起こすことなく、接頭辞付きの「cache_」テーブルを空にできますか?


2
これらのテーブルを切り捨てることで、これまでのところ問題は発生していません。
GoodSp33d

回答:


15

1つの例外を除き、はい。その例外はcache_formです。これは実際にはキャッシュテーブルではありませんが、サイトに現在表示されているフォームの一時的な$ form_state情報が含まれています。そのテーブルをクリアすると、これらのフォームが無効になり、ユーザーがそのフォームを送信しようとすると、エラーメッセージが表示され、そのフォームに再度入力する必要があります。

ことを注意drush sql-dumpし、バックアップや移行がこれらの代わりに、mysqldumpをやphpmyadminのとデータベース・ダンプを作成するときに自動的にこれらおよび他のテーブルの内容を除外。


drush sql-dumpには、実際には 'cache_form'テーブルが含まれています。
-cjoy

@remote:そうでないことを意味するつもりはありませんでした(明示的にcache_formを保持していることは知りませんでしたが)。私の答えが誤解を招くと思う場合は、自由に編集(または編集を提案)してください。
ベルディール

5

そのリストには「偽の友人」がいます。cache_formはキャッシュテーブルではありません。キャッシュテーブルを空にすると、その時点でサイトでアクティブなすべてのフォームが無効になります。

また、これにphpmyadminを使用する理由もわかりません。不格好でエラーが発生しやすいです。「drush cc all」はあなたの友達です:)


4

キャッシュテーブルの目的は、計算された値を保持することです。モジュールがcache_get()を呼び出して空の値を取得すると、コードを実行してキャッシュされた値を取得するだけです。
キャッシュが空の場合、私が知っているすべてのモジュールは自動的にコードを実行して、キャッシュに期待されていた値を取得します。キャッシュを空にしても、それを使用するモジュールに問題は生じません。


4

私はそれを何回もしましたが、それを行っても問題は見つかりませんでした。

重要な注意- すべてのキャッシュテーブルを一度にクリアしてください。これにより、Drupalは無効なキャッシュデータを使用できなくなります。


これらの表には非常に重要なデータがありますが、120%確信していますか?;)
モハンマドアリアクバリ

はい。ただし、非常に重要なデータについては、最初にバックアップを作成してください。:)
j2r

2
@MohammadAliAkbariあなたは、重要な、それは本当にどこか別の場所に格納されるべきデータだけでなく、キャッシュテーブルを持っている場合...
Chapabu

@ j2r、私も、何度かやりました。問題ない。+1
シチュ

@Chapabuサイトは重要です。重要なデータは自分で保存していませんでした
モハマド
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.