Isso pode ser corrigido reinstalando o Drupal ou copiando a tabela de uma instalação idealmente nova do Drupal para sua instância quebrada.
Ou você pode tentar a seguinte solução alternativa (somente faça isso quando a instância do Drupal já estiver quebrada):
Faça backup da tabela de registro antiga primeiro (apenas no caso):
drush sqlq "CREATE TABLE registry_bak LIKE registry; INSERT INTO registry_bak SELECT * FROM registry;"
drush sqlq "CREATE TABLE system_bak LIKE system; INSERT INTO system_bak SELECT * FROM system;"
Limpe o cache de autoinicialização e a tabela do registro.
drush sqlq "TRUNCATE cache_bootstrap; TRUNCATE registry"
Insira os dados básicos na tabela do Registro:
drush sqlq 'INSERT INTO registry (name, type, filename) VALUES ("SelectQueryExtender", "class", "includes/database/select.inc"), ("DrupalDefaultEntityController", "class", "includes/entity.inc");'
drush eval "registry_update();"
Limpe os caches:
drush -y cc all
Se os caches limpos do 4. falharem, devido a outras classes ausentes, você pode:
a) Adicione as classes ausentes manualmente, por exemplo:
$ drush -y cc all
Fatal error: Class 'Entity' not found in profile2.module on line 593
$ grep -Rwl "^class Entity" .
./sites/all/modules/entity/includes/entity.inc
$ drush sqlq 'INSERT INTO registry (name, type, filename) VALUES ("Entity", "class", "sites/all/modules/entity/includes/entity.inc");'
$ drush -y cc all # testing...
# If Fatal error:, repeat 5a. again.
ou:
b) Tente desativar esses módulos de contribuição com falha (por exemplo, perfil2, regras):
drush sqlq 'UPDATE system SET status = 0 WHERE name = "failing_module"'
e repita os passos a partir de 4.
Se algo estiver mais quebrado do que estava, você pode restaurar suas tabelas para o ponto original (que foi feito na 1. etapa):
drush sqlq "TRUNCATE registry; INSERT INTO registry SELECT * FROM registry_bak;"
drush sqlq "TRUNCATE system; INSERT INTO system SELECT * FROM system_bak;"
e tente novamente.
drush rr
falhou