it-swarm-es.com

¿Puedo desactivar el caché para la implementación de desarrollo?

En la plataforma de desarrollo, el almacenamiento en caché puede ser un dolor. ¿Puedo apagarlo? ¿Afectará alguno de los módulos que lo requieren?

23
palbakulich

Instale el módulo de desarrollo que agrega una opción de borrado de caché para los administradores. Encontrará un bloque de desarrollo para agregar a una región para borrar rápidamente la caché, o si instala menú de administración y obtiene un menú rápido en la parte superior izquierda para borrar varias cachés en Drupal.

Si le gusta la línea de comandos, instale drush y use el drush cc all comando para borrar las cachés de sus sitios. Tenga en cuenta que actualmente drush cc no borra el caché de Varnish si eso es aplicable a su configuración.

20
budda

Si está utilizando Drupal 7) siempre puede configurar su almacenamiento en caché para usar DrupalFakeCache, que normalmente solo se usa durante el proceso de instalación. Para configurarlo, suelte el siguiente fragmento de código en su settings.php:

include_once(DRUPAL_ROOT . '/includes/cache.inc');
include_once(DRUPAL_ROOT . '/includes/cache-install.inc');
$conf['cache_default_class'] = 'DrupalFakeCache';
9
Mikey P

La página 'Rendimiento' en administración> configuración del sitio le permitirá habilitar/deshabilitar el almacenamiento en caché de los elementos del sitio seleccionados. Las plantillas de temas generalmente se almacenan en caché de forma más persistente, pero se pueden vaciar dentro de la misma página de "rendimiento".

El módulo 'Menú de administración' proporcionará un acceso directo en una barra de herramientas si los enjuagues de caché se deben realizar con mayor regularidad; durante el desarrollo del tema, me encuentro enjuagando constantemente.

4
Storsey

Hasta donde yo sé, no hay ningún módulo que requiera almacenamiento en caché. Si no desea desactivarlo, puede borrarlo en el Site Settings > Performance sección.

Incluso con el almacenamiento en caché deshabilitado Drupal no reconocerá los nuevos archivos agregados a los temas hasta que borre el caché.

Hay información sobre las diferentes formas de borrar el caché en Drupal.org

4
Paul Jones

Además de los métodos Steve H mencionado , el uso del módulo Devel abre algunas opciones más, que incluyen:

  • Reconstrucción de la memoria caché de temas en cada carga de página (útil si eres un themer trabajando en archivos de plantilla)
  • Un bloque que proporcionará un fácil acceso a la función de caché vacía y la función de reinstalación.

Con el módulo Devel y el almacenamiento en caché desactivado en Rendimiento , el único otro caché importante con el que se encontrará en el desarrollo de rutina es el enrutador de menú, que puede ser reconstruido usando Devel o Admin Menu como Steve mencionó.

4
user7

Una cosa importante a tener en cuenta es que si tiene muchas hojas de estilo (ya sea de su tema o de módulos), desactivar la optimización de archivos CSS tiene el potencial de romper su sitio en IE.

Aunque en realidad no está en caché, está en la misma página de configuración y a menudo se usa con el almacenamiento en caché.

El enlace "Vaciar todas las cachés" en el módulo del menú de administración es fantástico, por cierto.

4
epersonae

Si está utilizando Drupal 6, el módulo " Cache Disable " puede ser útil para esa tarea si no desea [por alguna razón] instalar módulos más pesados como Devel.

3
wildpeaks

Cantidad de cachés utilizados con Drupal) a veces puede volverse loco.

Estos son los métodos comunes para deshabilitar y borrar Drupal cachés y asociados con él.


DESACTIVAR CACHES:

Tenga en cuenta que no puede deshabilitar todos los cachés, ya que algunos de ellos son necesarios para Drupal.

Aquí hay un método para deshabilitar los cachés agregando las siguientes líneas en su archivo de configuración:

// Disable caches
$conf['cache'] = 0;
$conf['block_cache'] = 0;
$conf['views_skip_cache'] = TRUE;
$conf['page_compression'] = 0;
$conf['preprocess_css'] = 0;
$conf['preprocess_js'] = 0;

Si deshabilita todas sus memorias caché, su sitio web será muy lento, por lo que no se recomienda para otros entornos exentos de su máquina de desarrollo.


BORRANDO CACHES

XCache

Borrar cachés XCache si se usa:

drush eval "function_exists('xcache_clear_cache') && xcache_clear_cache();"

O borre el caché en XCache en el panel de administración (/ xcache-admin) si lo anterior no funciona.

Acelerador electrónico

drush eval "function_exists('accelerator_reset') && accelerator_reset();"

[~ # ~] apc [~ # ~]

drush eval "function_exists('apc_clear_cache') && apc_clear_cache();"

OPCache

Borrar PHP OPCache si se usa con PHP> = 5.5

drush eval "function_exists('opcache_reset') && opcache_reset();"

Nota: El comando CLI anterior no borrará el caché para Apache, según: Opcache - Limpiar caché en PHP5.4 y versiones inferiores .

memcached

Si está usando memcached, debe borrar, reiniciar o matar su memcached con uno de los métodos:

Como usuario (uno de estos):

echo flush_all > /dev/tcp/127.0.0.1/11211
echo flush_all | nc localhost 11211 # Flush Contents Of a Memcached Server

Como raíz (uno de estos):

/etc/init.d/rc.d/memcached restart
service memcached restart
killall memcached # It's automatically restarted on OSX.

También se recomienda instalar el módulo memcached con la siguiente línea en su archivo de configuración:

$conf['cache_backends'][] = 'sites/all/modules/contrib/memcache/memcache.inc';

Por lo tanto, los cachés de Memcached se borran en el estándar Drupal clear cache.

Barniz

Si está utilizando Varnish, se recomienda instalar el módulo Varnish y establecer la siguiente línea en su archivo de configuración:

$conf['cache_backends'][] = 'sites/all/modules/contrib/varnish/varnish.cache.inc';

Por lo tanto, la memoria caché de Varnish se borraría en Drupal clear cache.

Alternativamente, puede usar curl para borrar las páginas manualmente:

curl -X PURGE -H "Host: domain.com" http://127.0.0.1/node/123

Leer más: ¿Cómo puedo borrar el caché de barniz?

Drupal

Borrar Drupal cachés vía drush:

drush cc all
echo "SHOW TABLES LIKE 'cache%'" | $(drush sql-connect) | tail -n +2 | xargs -L1 -I% echo "DELETE FROM %;" | $(drush sql-connect) -v
drush eval 'menu_rebuild();'

Puede hacer lo mismo en/admin/config/development/performance, ya que a veces las memorias caché de la interfaz de usuario se borran de la mejor manera que desde la CLI.


Aquí está el útil script de Shell para borrar todas las cachés:

#!/bin/bash
set -o xtrace
echo "SHOW TABLES LIKE 'cache%'" | $(drush sql-connect) | tail -n +2 | xargs -L1 -I% echo "DELETE FROM %;" | $(drush sql-connect) -v
echo 'flush_all' | nc localhost 11211 # Flush Contents Of a Memcached Server
drush eval "function_exists('opcache_reset') && opcache_reset(); function_exists('xcache_clear_cache') && xcache_clear_cache();"
drush eval 'menu_rebuild();'
set -o xtrace -
echo done.
2
kenorb

Antigua pregunta, pero acabo de ver que apareció como una relacionada con una búsqueda que estaba haciendo.

Casi todos los métodos de limpieza de caché terminan llamando drupal_flush_all_caches al final. Puedes jugar llamando a esto en varias circunstancias en tu propio código.

2
mpdonadio

podemos usar uno de los siguientes métodos para borrar el caché en drupal

1.) Podemos visitar url your_domain/admin/config/development/performance y hacer clic en el botón borrar caché.

2.) Si tenemos instalado el módulo drush, podemos borrar el caché con este comando drush cc all .

3.) Si tenemos acceso a la base de datos, podemos borrar la memoria caché con los siguientes comandos (no se recomienda enfáticamente el acceso directo a una base de datos de producción; utilice una de las alternativas si su sitio está "en vivo")

TRUNCATE TABLE cache;

TABLA DE TRUNCATE cache_block;

TABLA DE TRUNCATE cache_bootstrap;

TABLA TRUNCATE cache_field;

TABLA DE TRUNCATE cache_filter;

TABLA TRUNCATE cache_form; // observe diferencias importantes con respecto a otras tablas cache_ *; consulte más información a continuación

TRUNCATE TABLE cache_image;

TABLA TRUNCATE cache_menu;

TRUNCATE TABLE cache_page;

TRUNCATE TABLE cache_path;

TABLA DE TRUNCATE cache_token;

TRUNCATE TABLE cache_update;

4.) También podemos escribir consultas en nuestro archivo de módulo db_query ("DELETE FROM {cache};");

5.) Podemos usar drupal api para borrar el caché como cache_clear_all ()

6.) También podemos borrar el caché mediante el módulo de desarrollo, instalar el módulo de desarrollo y habilitar el "Bloque de desarrollador/desarrollo".

Más información sobre cache_form, que tiene un propósito diferente al de otras caché _ tablas:

  • los documentos básicos de la API para drupal_flush_all_caches () dicen "No borre cache_form - los envíos de formularios en curso pueden romperse". Esta preocupación se aplica solo a sitios con usuarios activos y no a versiones de desarrollo.

  • otros métodos manuales para borrar cachés descritos en esta publicación no afectarán a cache_form

  • si necesita reducir el tamaño de cache_form en un sitio de producción, vea El tamaño de la tabla del formulario de caché es enorme

0
SynapseIndia