web-dev-qa-db-ja.com

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

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

だから私は疑問に思っています:データベースを更新するたびにadmin/settings/performanceにアクセスする必要がありますか?それともDrushスクリプトがありますか?

19
Capi Etheriel

https://drupal.org/node/797346 D7の場合。 D6の場合、 https://drupal.org/project/cache_disable ですが、フォームキャッシュが壊れます。フォームキャッシング用のDBキャッシュに該当するようにパッチを当てる必要があります。そしておそらくステータスキャッシュも更新します。

6
anon

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

 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を使用してさまざまなキャッシュをオフにし、キャッシュを一度クリアすると、残りをオフにせずにテーマを削除できます...スクリプトが変更される可能性が低いためです。

17
doublejosh

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_jspreprocess_css allを'0'に設定します

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

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

11
gapple

開発サーバーで常にDrushエイリアスファイルを使用し、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コマンドは、秘密鍵と公開鍵のペアを作成し、公開鍵をライブサーバーにプッシュします。最後のコマンドは、それが機能したことを確認することです。

2
Chris Graham

次のすべてのオプションを有効/無効にする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
1
cyberp

また、以下の行でキャッシュを無効にして、settings.phpファイル

$conf['display_cache_disable'] = TRUE;
1
Yusef