すべてのキャッシュを無効にするブラシスクリプトはありますか?


19

admin / settings / performanceの下のすべてのキャッシュオプションを意味します。私は頻繁にdrush sql-syncを使用して、サーバーで開発コピーを最新の状態に保ちます。ただし、サーバーではすべてのキャッシュを有効にする必要があります。

だから私は疑問に思う:私のdbを更新するたびにadmin / settings / performanceにアクセスする必要がありますか?または、そのためのDrushスクリプトはありますか?


1
簡単な説明:chxの答えは「drush en cache_disable --yes」だけなので、最高です。GAppleは問題を完全に解決しますが、初心者を傷つける可能性がありますが、GAppleは本当に近づいています。doublejoiceは実際に筆記スクリプトを提案しており、私の質問に対する素晴らしい答えですが、他の2つはさらに優れています。
カピエテリエル

回答:



17

開発サイトでキャッシュをオフにするには、いくつかの変数を設定する必要があります...

 drush vset cache 0
 drush vset preprocess_css 0
 drush vset preprocess_js 0
 drush vset page_cache_maximum_age 0
 drush vset views_skip_cache TRUE

settings.phpファイルに条件付き設定があるとさらに簡単です。その後、DBを更新すると、変更が保持されます!

$conf['cache'] = 0; // Page cache $conf['page_cache_maximum_age'] = 0; // External cache TTL $conf['preprocess_css'] = FALSE; // Optimize css $conf['preprocess_js'] = FALSE; // Optimize javascript $conf['views_skip_cache'] = TRUE; // Views caching

...ただし、管理UIを使用してさまざまなキャッシュをオフにし、キャッシュを一度クリアすると、残りをオフにせずにテーマを変更できます。スクリプトは変更される可能性が低いためです。


また、あなたがして、生産までのコードをプッシュリポジトリからあなたのsettings.phpファイルを除外して、これらの設定を追加することができます...$conf = array( 'cache' => FALSE, //page cache 'block_cache' => FALSE, //block cache 'preprocess_css' => FALSE, //optimize css 'preprocess_js' => FALSE, //optimize javascript 'environment' => 'development' );
doublejosh

もっと勧告...$conf['cache'] = 0; $conf['page_cache_maximum_age'] = 0; $conf['block_cache'] = FALSE; $conf['preprocess_css'] = FALSE; $conf['preprocess_js'] = FALSE; $conf['views_skip_cache'] = TRUE;
doublejosh

11

settings.phpファイルを使用して、データベース設定をオーバーライドする変数を明示的に設定できます。値はファイルに設定されているものにロックされ、管理インターフェースを介して変更することはできません。
デフォルトファイルの最後には、次のセクションがあります。

/**
 * Variable overrides:
 *
 * To override specific entries in the 'variable' table for this site,
 * set them here. You usually don't need to use this feature. This is
 * useful in a configuration file for a vhost or directory, rather than
 * the default settings.php. Any configuration setting from the 'variable'
 * table can be given a new value. Note that any values you provide in
 * these variable overrides will not be modifiable from the Drupal
 * administration interface.
 *
 * Remove the leading hash signs to enable.
 */
# $conf = array(
#   'site_name' => 'My Drupal site',
#   'theme_default' => 'minnelli',
#   'anonymous' => 'Visitor',

だから、無効ページ、JS、およびCSSのキャッシング、セットにcachepreprocess_js、およびpreprocess_cssすべての'0'

$conf = array(
  'cache' => '0',
  'preprocess_css' => '0',
  'preprocess_js' => '0',
);

配列宣言の閉じ括弧は、さらにいくつかのコメントブロックの後のデフォルトファイルの最後の行なので、新しいコメントブロックを追加するのではなく、コメントを外してください。また、$conf競合する別の宣言がないことを確認してください。


2

開発サーバーで常にdrush aliasesファイルを使用し、sql-syncの実行時にキャッシュテーブルをスキップするように設定できます。以下は、ローカル開発サーバーとリモートライブサーバーのエイリアスを作成します。

$aliases['dev'] = array(
    'root' => '/var/www/devroot',
);

$aliases['live'] = array(
    'root' => '/var/www/liveroot',
    'remote-host' => 'www.mysite.com',
    'remote-user' => 'exampleuser',
    'command-specific' => array (
       'sql-sync' => array (
         'skip-tables-list' => 'cache,cache_menu',
       ),
    ),
);

次のホームディレクトリに保存した場合:

~/.drush/mysite.aliases.drushrc.php

次のようにsql-syncコマンドを呼び出すことができます:

drush sql-sync @mysite.live @mysite.dev

キャッシュテーブルをスキップする必要があります(明らかに2つしかリストされていませんが、そこに何かを置くことができます。ウォッチドッグを追加することもできます)。

エイリアスとすべてのさまざまなオプションの詳細については、drush / examples / example.aliases.drushrc.phpにあるdrushインストールのサンプルファイルを参照してください。

sql-syncを使用しようとする人への最後の注意として、最初に実行したときに認証の問題があったため、誰かがこれを試みて公開/秘密キーに関するエラーが発生した場合は、次のようにします:

drush dl drush_extras
drush pushkey @mysite.live
drush @mysite.live status

drush_extrasのpushkeyコマンドは、秘密/公開キーペアを作成し、公開キーをライブサーバーにプッシュします。最後のコマンドは、機能したことを確認することです。


おかげで、答えは素晴らしいです。しかし私の問題は、開発環境でキャッシュをオフにする必要があり、更新するたびにadmin / settings / performanceにアクセスしないようにすることです。
カピエテリエル

1

次のオプションをすべて有効/無効にするdrushコマンドを作成しました。

cache
cache_lifetime
page_cache_maximum_age
preprocess_css
preprocess_js

例とコードはここにあります:http : //ourlife01.blogspot.gr/2015/05/drush-command-to-enabledisable-cache.html

したがって、上記のオプションをすべて無効にするには、次を実行するだけです。

drush cache-disable

コマンド:

drush cache-enable

変数を値に設定するのと同じです:

cache: TRUE
cache_lifetime: 1 minute
page_cache_maximum_age: 1 hour
preprocess_css: TRUE
preprocess_js: TRUE

これは非常に便利ですが、キャッシュを再度有効にすることに関しては独自の意見があります。キャッシュを無効にするか、CLIプロンプトを介してユーザーに尋ねるときは、以前の値を保存する方が良いでしょう。
カピエテリエル

あなたは正しい@barrapontoです。スクリプトを修正し、ヘルプも追加しました。新しいコマンドはdrush cache-enable min maxです。上記のURLを確認してください。
cyberp

新バージョンblock cacheも同様に有効/無効にします。
cyberp15年

驚くばかり。drupal.orgでの公開を妨げているのは何ですか?
カピエテリエル

時間!私はそれを行う方法がわかりません:)
cyberp

1

また、以下の行でキャッシュを無効にして、settings.phpファイルに入れることができます

$conf['display_cache_disable'] = TRUE;
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.