Limpar cache sem fazer login


10

Eu adicionei uma instrução if em torno do conteúdo render php no meu arquivo page.tpl.php. O único problema é que cometi um erro e acidentalmente o impedi de renderizar conteúdo em qualquer página. Limpei o cache e efetuei logout para testá-lo e, percebendo meu erro, corrigi o arquivo de modelo. Mas agora não consigo fazer login novamente para limpar o cache novamente, pois meu site não processa conteúdo e, portanto, não processa a caixa de login.

Alguém pode me dar uma maneira no Drupal 7 de efetuar login sem a caixa de login (como uma maneira de renderizar a caixa de login separadamente para o conteúdo) ou uma maneira de limpar o cache?


2
Se você tiver acesso ao banco de dados, execute TRUNCATE TABLE table_namea cachetabela e todas as outras tabelas que começam comcache_
Clive

2
Se você tiver o drush instalado, poderá fazê drush cc-lo a partir do terminal enquanto estiver na raiz do drupal.
Cyclonecode

Na sua página, basta executar drupal_flush_all_caches ();
Anil Sagar

Respostas:


12

Eu. Se você tiver o drush instalado (http://drupal.org/project/drush) - se não o tiver, pense na próxima vez :), abra o console (WIN + R) no Windows ou Ctrl + Alt + T no Linux aponte para a pasta do seu site (por exemplo, cd /www/mydrupalsite/e digite:

 $ drush cc all

a partir da linha de comando.

ii. Outro método é fazer login no seu phpmyadmin, selecionar suas tabelas cache_ e liberá-las / esvaziá-las.


6

A melhor solução que encontrei no final foi fazê-lo através do phpmyadmin. Entrei e esvaziei todas as tabelas que tinham "cache" no início do nome. Fácil se você não trabalha com drush.


Repetir a resposta de drupal_stuff_alter em parte, sem qualquer informação adicional, dificilmente é útil e, na minha opinião, é muito desdenhoso do conceito deste site. Não posso nem começar a supor por que você quer atrapalhar as pessoas que encontrarem essa pergunta no futuro, publicando e aceitando uma resposta que omita o drushmétodo, que exige claramente menos tempo e esforço e, além disso, é o caminho pretendido.
TheThirdMan

5

Além das opções mencionadas acima, como último esforço, você poderia chamar a função drupal_flush_all_caches()para limpar todos os caches.

Você pode fazer isso colocando o código abaixo em um arquivo php na raiz do documento e visitando-o em um navegador:

define('DRUPAL_ROOT', getcwd());
require_once DRUPAL_ROOT . '/includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
drupal_flush_all_caches();

Não testei esse código e remova-o depois de limpar seus caches.


Observe que você precisa definir a constante DRUPAL_ROOT primeiro. Ele não estava aparecendo no exemplo de código originalmente, então adicionei algum espaço em branco para que apareça agora.
Ryan Szrama

2

Você pode definir

$update_free_access = TRUE;

em settings.php (na linha 226) e navegue até /update.php. Isso limpará o cache.


0

Você pode limpar o cache do Drupal executando o seguinte comando no console de comandos do Windows ou em um arquivo .bat (ou no console do Linux):

php -r "define ('DRUPAL_ROOT', '../web'); chdir (DRUPAL_ROOT); define ('MAINTENANCE_MODE', 'update'); global $ _SERVER; $ _SERVER ['REMOTE_ADDR'] = '127.0.0.1 '; require_once DRUPAL_ROOT.' / includes / bootstrap.inc '; drupal_bootstrap (DRUPAL_BOOTSTRAP_FULL); drupal_flush_all_caches (); "

Apenas verifique se DRUPAL_ROOT no código aponta para o diretório Drupal.


0
delete from cache where cid <> '';
delete from cache_block where cid <> '';
delete from cache_bootstrap where cid <> '';
delete from cache_field where cid <> '';
delete from cache_filter where cid <> '';
delete from cache_path where cid <> '';
delete from cache_libraries where cid <> '';
delete from cache_image where cid <> '';
delete from cache_page where cid <> '';
delete from cache_token where cid <> '';
delete from cache_update where cid <> '';
delete from cache_views where cid <> '';
delete from cache_views_data where cid <> '';
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.