drupal 7 Class ‘EntityAPIControllerExportable’ not found

Обратился клиент с такой ошибкой

PHP Fatal error:  Class 'EntityAPIControllerExportable' not found in /***/sites/all/modules/rules/includes/rules.core.inc on line 17

Ни сайт, ни /update.php не работали — везде она :-) .
Найденные решения оказались не столь быстрыми как хотелось. Но все по порядку.

Итак, гугл с яндексом по данному запросу едины в ответе:
1. скачиваете модуль Registry Rebuild
2. распаковываете, по фтп закачиваете папку в /sites/all/modules
3. в браузере открываете

//ваш_домен.ру/sites/all/modules/registry_rebuild/registry_rebuild.php

и видите список ошибок

DRUPAL_ROOT is /***.
Bootstrapping to DRUPAL_BOOTSTRAP_SESSION
Bootstrap caches have been cleared in DRUPAL_BOOTSTRAP_SESSION
Doing registry_rebuild() in DRUPAL_BOOTSTRAP_SESSION
Bootstrapping to DRUPAL_BOOTSTRAP_FULL
Rebuilding registry via registry_rebuild_cc_all in DRUPAL_BOOTSTRAP_FULL
Главная
Ошибка

Сообщение об ошибке

Warning: Cannot modify header information - headers already sent by (output started at /***/sites/all/modules/registry_rebuild/registry_rebuild.php:12) in drupal_send_headers() (line 1225 of /***/includes/bootstrap.inc).
Warning: Cannot modify header information - headers already sent by (output started at /***/sites/all/modules/registry_rebuild/registry_rebuild.php:12) in drupal_send_headers() (line 1225 of /***/includes/bootstrap.inc).
Warning: Cannot modify header information - headers already sent by (output started at /***/sites/all/modules/registry_rebuild/registry_rebuild.php:12) in drupal_send_headers() (line 1225 of /***/includes/bootstrap.inc).
Warning: Cannot modify header information - headers already sent by (output started at /***/sites/all/modules/registry_rebuild/registry_rebuild.php:12) in drupal_send_headers() (line 1225 of /***/public_html/includes/bootstrap.inc).
Warning: Cannot modify header information - headers already sent by (output started at /***/sites/all/modules/registry_rebuild/registry_rebuild.php:12) в функции drupal_send_headers() (строка 1221 в файле /***/includes/bootstrap.inc).
PDOException: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'base.dirty' in 'field list': SELECT base.id AS id, base.name AS name, base.label AS label, base.plugin AS plugin, base.active AS active, base.weight AS weight, base.status AS status, base.dirty AS dirty, base.module AS module, base.owner AS owner, base.access_exposed AS access_exposed, base.data AS data FROM {rules_config} base WHERE (base.status IN (:db_condition_placeholder_0, :db_condition_placeholder_1, :db_condition_placeholder_2)) ; Array ( [:db_condition_placeholder_0] => 3 [:db_condition_placeholder_1] => 2 [:db_condition_placeholder_2] => 6 ) в функции EntityAPIController->query() (строка 187 в файле /***/sites/all/modules/entity/includes/entity.controller.inc).
На сайте произошла непредвиденная ошибка. Пожалуйста, повторите попытку позже.

Данный модуль делает расчистку затора при перестройке реестра, когда она необходима, как, например, при установке новой версии какого-то модуля. Это не панацея, но часть функционала движка поправилась и можно запустить /update.php
4. Отрываем

//ваш-домен.ру/update.php

Нажимаем далее и смотрим результат.

Первая проблема:

Error
Unresolved dependency System (Version >=7.24 required)
Mime Mail requires this module and version. Currently using System version 7.10
Error
Unresolved dependency System (Version >=7.24 required)
Mime Mail Action requires this module and version. Currently using System version 7.10
Error
Unresolved dependency System (Version >=7.24 required)
Mime Mail CSS Compressor requires this module and version. Currently using System version 7.10

Движок обновлен (7.28), но компонент Mime Mail по прежнему требует обновления.
Идем в /sites/all/modules и папку mimemail переносим на уровень выше, этим мы отключим его временно.
Снова отрываем

//ваш-домен.ру/update.php

Если у вас ошибок нет и обновление прошло, то все хорошо — сайт должен завестись.

В моем же случае я получил другую проблему:

Update #7004 Failed: DatabaseSchemaObjectDoesNotExistException: <em class="placeholder">field_deleted_data_16</em>.<em class="placeholder">uc_product_image_alt</em>: поле не существует. в функции DatabaseSchema_mysql->changeField() ( 454 /includes/database/mysql/schema.inc).

Гугл с яндексом направили в эту Image Module Update #7004 Fail ветку, где обсуждается подобный баг, но мало-мальски легкого решения не нашлось (скорее всего просто не понял, надо было английский в школе лучше учить :-) ).
Из того, что понял получился такой фикс «методом тыка»:
1. зашел в phpmyadmin
2. просмотрел список таблиц в базе и наткнулся на похожую таблицу field_deleted_data_23
3. экспортировал таблицы field_deleted_data_23 и field_deleted_revision_23
4. открыл в notepad++ и заменил все _23 на _16, сохранил
5. импортировал таблицы, получив field_deleted_data_16 и field_deleted_revision_16 соответственно
6. запустил обновление

//ваш-домен.ру/update.php

и о чудо — все прошло без ошибок!!!
На всякий случай оставлю эти запросы на создание таблиц field_deleted_data.sql

Возращаем на место /sites/all/modules папку mimemail.

И для контроля запустим

//ваш_домен.ру/sites/all/modules/registry_rebuild/registry_rebuild.php
#DRUPAL_ROOT is /***.
#Bootstrapping to DRUPAL_BOOTSTRAP_SESSION
#Bootstrap caches have been cleared in DRUPAL_BOOTSTRAP_SESSION
#Doing registry_rebuild() in DRUPAL_BOOTSTRAP_SESSION
#Bootstrapping to DRUPAL_BOOTSTRAP_FULL
#Rebuilding registry via registry_rebuild_cc_all in DRUPAL_BOOTSTRAP_FULL
#All caches have been cleared with registry_rebuild_cc_all.
#There were 553 files in the registry before and 553 files now.
#All caches have been cleared with registry_rebuild_cc_all.
#If you don't see any crazy fatal errors, your registry has been rebuilt.

Все гуд ;-)

Скажите свое мнение

ваш email не публикуется. обязательно *

;-) :yawn: :whew: :toivo: :tmi: :time: :thinking: :talking: :sweating: :swear: :sun: :star: :smoke: :smirk: :sleepy: :skype: :shock: :shake: :rofl: :rain: :punch: :puke: :poolparty: :pizza: :phone: :party: :oops: :nod: :no: :ninja: :neutral: :nerd: :music: :muscle: :mrgreen: :movie: :mooning: :mmm: :middlefinger: :makeup: :mail: :mad: :lol: :lipssealed: :kiss: :itwashtme: :inlove: :idea: :hi: :heidy: :heart: :headbang: :happy: :handshake: :giggle: :fubar: :flower: :evilgrin: :emo: :dull: :drunk: :drink: :doh: :devil: :dance: :cry: :cool: :coffie: :clapping: :cash: :call: :cake: :bug: :brokenheart: :bow: :blush: :beer: :bear: :bandit: :arrow: :angry: :angel: :^) :???: :?: :-| :-o :-P :-D :-) :-( :!:

 

*

code

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.