[РЕШЕНО]При обновлении с 7.8 до 7.10 получаю ошибку

Главные вкладки

Аватар пользователя abix abix 22 декабря 2011 в 11:25

The following updates returned messages

image module

Update #7002
Failed: DatabaseSchemaObjectExistsException: Невозможно добавить поле %able.field_image_width: поле уже существует. в функции DatabaseSchema_mysql->addField() (строка 323 в файле /home/u4310/domains/u4310.he.vps-private.net/mirmebeli/includes/database/mysql/schema.inc).

РЕШЕНИЕ:

/* always */
ALTER TABLE `field_data_field_image` DROP COLUMN `field_image_width`,
DROP COLUMN `field_image_height`;
ALTER TABLE `field_revision_field_image` DROP COLUMN `field_image_width`,
DROP COLUMN `field_image_height`;
/* для других созданных полей */
ALTER TABLE `field_data_field_image_image` DROP COLUMN `field_image_image_height`,
DROP COLUMN `field_image_image_width`;
ALTER TABLE `field_revision_field_image_image` DROP COLUMN `field_image_image_width`,
DROP COLUMN `field_image_image_height`;

Комментарии

Аватар пользователя afishi afishi 15 января 2012 в 2:10

а можешь расписать по-шагов? без картинок. какие папки и когда менял? и как и когда команду в БД прописывал?

Аватар пользователя ALastorZ ALastorZ 28 февраля 2012 в 4:42

Не совсем согласен с автором, в моем случае, ошибка выдавалась т.к. (судя по стркуктуре базы) апдейт 7002 отработал, но в базе не зафиксировался, поэтому чтобы не терять данные, логичнее так:

UPDATE `system` SET `schema_version` = '7002' WHERE `system`.`filename` = 'modules/image/image.module' LIMIT 1

Аватар пользователя gorcom gorcom 9 июня 2012 в 15:33

ALastorZ wrote:
В консоли сервера БД или MySQLAdmin, если нет опыта работа с базами SQL напрямую — будь аккуратен.

Конечно пытаюсь именно так, но ...
Если сообщение такое:
Update #7002
Failed: DatabaseSchemaObjectExistsException: Неможливо додати поле field_data_field_image.field_image_width, бо воно вже існує. в DatabaseSchema_mysql->addField() (рядок 328 із Z:\home\localhost\www\ecommerce\includes\database\mysql\schema.inc).

А в у казаном файле строчка здесь:

327 if ($this->fieldExists($table, $field)) {
328 throw new DatabaseSchemaObjectExistsException(t("Cannot add field %table.%field: field already exists.", array('%field' => $field, '%table' => $table)));
329 }

Как прикрутить то о чем писалось выше?

Аватар пользователя ALastorZ ALastorZ 9 июня 2012 в 17:31

Ну так судя по всему у тебя апдейт 7002 уже отработал. Убедись что все новые поля схемы созданы, вручную прямо по строчкам в запросах из кода апдейта 7002. И поправь версию схемы ручками строчкой из моего поста.

Аватар пользователя vinta vinta 11 декабря 2013 в 17:04

А мне не поможите. Обновил модуль css_injector module. При обновлении было сообщение что ожидается загрузка вот такой штуки: 7001 - Adds enabled rule and themes list. Как я понял это что то новое и в старой версии модуля её не было, и вылезла вот такая бяка:

Тhe following updates returned messages
css_injector module
Update #7001

    Failed: DatabaseSchemaObjectExistsException: Невозможно добавить поле %able.<em class="placeholder">enabled</em>: поле уже существует. в функции DatabaseSchema_mysql->addField() (строка 328 в файле /путь/includes/database/mysql/schema.inc)

Вот строки файла schema.inc

 
327    if ($this->fieldExists($table, $field)) {
328      throw new DatabaseSchemaObjectExistsException(t("Cannot add field %table.%field: field already exists.", array('%field' => $field, '%table' => $table)));
329    }

Что делать?