Страница 1 из 1

Ошибка при обновлении (при попытке структурировать БД).

Добавлено: 2011-07-04 23:33:32
vv-master
Добрый вечер!

На третьем шаге обновления выдает ошибку.

Код: Выделить всё

-- Резервное копирование базы данных

Файл (/usr/local/www/apache22/data/hosts/billing.vv-master.com/tmp/db/jbs_4e11fa3894464.sql.gz) резервной копии имеет размер 1212 Кб.




-- Восстановление профилей

Восстановлено 12 профилей


-- Патчи базы данных

Последний патч базы данных хоста (billing) (1000273)
Применение патча базы данных хоста (billing)
---
ALTER TABLE `Events` ADD KEY (`IsReaded`);
-- SEPARATOR
ALTER TABLE `Events` ADD KEY (`CreateDate`);
-- SEPARATOR
ALTER TABLE `Clauses` ADD KEY `ClausesPartition` (`Partition`) /* IF NOT EXISTS (SHOW KEYS FROM `Clauses` WHERE Key_name = 'ClausesPartition')*/;
-- SEPARATOR
ALTER TABLE `Clauses` ADD KEY `ClausesPublicDate` (`PublicDate`);
-- SEPARATOR
ALTER TABLE `Invoices` ADD KEY `InvoicesStatusID` (`StatusID`);
-- SEPARATOR
ALTER TABLE `Invoices` ADD KEY `InvoicesStatusDate` (`StatusDate`);
-- SEPARATOR
ALTER TABLE `Edesks` ADD KEY `EdesksStatusID` (`StatusID`);
-- SEPARATOR
ALTER TABLE `Edesks` ADD KEY `EdesksUpdateDate` (`UpdateDate`);
-- SEPARATOR
ALTER TABLE `Contracts` ADD KEY `ContractsTypeID` (`TypeID`);
-- SEPARATOR
ALTER TABLE `Tasks` ADD KEY `TasksCreateDate` (`CreateDate`);
-- SEPARATOR
ALTER TABLE `Tasks` ADD KEY `TasksIsActive` (`IsActive`);
-- SEPARATOR
ALTER TABLE `Tasks` ADD KEY `TasksIsExecuted` (`IsExecuted`);
-- SEPARATOR
ALTER TABLE `Tasks` ADD KEY `TasksExecuteDate` (`ExecuteDate`);
-- SEPARATOR
ALTER TABLE `Tasks` ADD KEY `TasksErrors` (`Errors`);
-- SEPARATOR
ALTER TABLE `MotionDocuments` ADD KEY `MotionDocumentsTypeID` (`TypeID`);
-- SEPARATOR
ALTER TABLE `MotionDocuments` ADD KEY `MotionDocumentsUniqID` (`UniqID`);
-- SEPARATOR
ALTER TABLE `Groups` ADD KEY `GroupsIsDepartment` (`IsDepartment`);
-- SEPARATOR
ALTER TABLE `Permissions` ADD KEY `PermissionsName` (`Name`);
-- SEPARATOR
ALTER TABLE `Permissions` ADD KEY `PermissionsMetric` (`Metric`);
-- SEPARATOR
ALTER TABLE `Profiles` ADD KEY `ProfilesTemplateID` (`TemplateID`);
-- SEPARATOR
ALTER TABLE `Profiles` ADD KEY `ProfilesStatusID` (`StatusID`);
-- SEPARATOR
ALTER TABLE `Profiles` ADD KEY `ProfilesStatusDate` (`StatusDate`);
-- SEPARATOR
ALTER TABLE `Users` ADD KEY `UsersEmail` (`Email`);
-- SEPARATOR
ALTER TABLE `Users` ADD KEY `UsersName` (`Name`);
-- SEPARATOR



---
ERROR: ошибка применения патча (Duplicate key name 'ClausesPartition')


Таким образом, код обновился, а базы - нет. После того как откатился на старую базу проблема осталась, как сделать downgrade версии кода не нашел информации.

Просьба помочь либо полностью обновиться до новой версии, либо откатиться на старую (была версия 1.4.5).

Re: Ошибка при обновлении (при попытке структурировать БД).

Добавлено: 2011-07-05 8:22:00
Alex Keda
из файла

Код: Выделить всё

patches/billing/db/1000274.sql

удалите строки

Код: Выделить всё

-- SEPARATOR
ALTER TABLE `Clauses` ADD KEY `ClausesPartition` (`Partition`) /* IF NOT EXISTS (SHOW KEYS FROM `Clauses` WHERE Key_name = 'ClausesPartition')*/;

и запуститете третий шаг ещё раз
(первый/второй не надо - затрёт ваши изменения в патче)

Re: Ошибка при обновлении (при попытке структурировать БД).

Добавлено: 2011-07-05 12:06:00
vv-master
Начинает ругаться на следующую строчку в этом файле:

Код: Выделить всё

-- Резервное копирование базы данных

Файл (/usr/local/www/apache22/data/hosts/billing.vv-master.com/tmp/db/jbs_4e12ac76bf241.sql.gz) резервной копии имеет размер 1212 Кб.




-- Восстановление профилей

Восстановлено 12 профилей


-- Патчи базы данных

Последний патч базы данных хоста (billing) (1000273)
Применение патча базы данных хоста (billing)
---
ALTER TABLE `Events` ADD KEY (`IsReaded`);
-- SEPARATOR
ALTER TABLE `Events` ADD KEY (`CreateDate`);
-- SEPARATOR
ALTER TABLE `Clauses` ADD KEY `ClausesPublicDate` (`PublicDate`);
-- SEPARATOR
ALTER TABLE `Invoices` ADD KEY `InvoicesStatusID` (`StatusID`);
-- SEPARATOR
ALTER TABLE `Invoices` ADD KEY `InvoicesStatusDate` (`StatusDate`);
-- SEPARATOR
ALTER TABLE `Edesks` ADD KEY `EdesksStatusID` (`StatusID`);
-- SEPARATOR
ALTER TABLE `Edesks` ADD KEY `EdesksUpdateDate` (`UpdateDate`);
-- SEPARATOR
ALTER TABLE `Contracts` ADD KEY `ContractsTypeID` (`TypeID`);
-- SEPARATOR
ALTER TABLE `Tasks` ADD KEY `TasksCreateDate` (`CreateDate`);
-- SEPARATOR
ALTER TABLE `Tasks` ADD KEY `TasksIsActive` (`IsActive`);
-- SEPARATOR
ALTER TABLE `Tasks` ADD KEY `TasksIsExecuted` (`IsExecuted`);
-- SEPARATOR
ALTER TABLE `Tasks` ADD KEY `TasksExecuteDate` (`ExecuteDate`);
-- SEPARATOR
ALTER TABLE `Tasks` ADD KEY `TasksErrors` (`Errors`);
-- SEPARATOR
ALTER TABLE `MotionDocuments` ADD KEY `MotionDocumentsTypeID` (`TypeID`);
-- SEPARATOR
ALTER TABLE `MotionDocuments` ADD KEY `MotionDocumentsUniqID` (`UniqID`);
-- SEPARATOR
ALTER TABLE `Groups` ADD KEY `GroupsIsDepartment` (`IsDepartment`);
-- SEPARATOR
ALTER TABLE `Permissions` ADD KEY `PermissionsName` (`Name`);
-- SEPARATOR
ALTER TABLE `Permissions` ADD KEY `PermissionsMetric` (`Metric`);
-- SEPARATOR
ALTER TABLE `Profiles` ADD KEY `ProfilesTemplateID` (`TemplateID`);
-- SEPARATOR
ALTER TABLE `Profiles` ADD KEY `ProfilesStatusID` (`StatusID`);
-- SEPARATOR
ALTER TABLE `Profiles` ADD KEY `ProfilesStatusDate` (`StatusDate`);
-- SEPARATOR
ALTER TABLE `Users` ADD KEY `UsersEmail` (`Email`);
-- SEPARATOR
ALTER TABLE `Users` ADD KEY `UsersName` (`Name`);
-- SEPARATOR



---
ERROR: ошибка применения патча (Duplicate key name 'ClausesPublicDate')


При удалении следующей - ругается на следующую и так до конца файла. Если удалить все строки до конца файла, то выдает:

Код: Выделить всё

-- Резервное копирование базы данных

Файл (/usr/local/www/apache22/data/hosts/billing.vv-master.com/tmp/db/jbs_4e12ad0f152a0.sql.gz) резервной копии имеет размер 1212 Кб.




-- Восстановление профилей

Восстановлено 12 профилей


-- Патчи базы данных

Последний патч базы данных хоста (billing) (1000273)
Применение патча базы данных хоста (billing)
---
ALTER TABLE `Events` ADD KEY (`IsReaded`);
-- SEPARATOR
ALTER TABLE `Events` ADD KEY (`CreateDate`);
-- SEPARATOR


---
ERROR: ошибка применения патча (Query was empty)

Re: Ошибка при обновлении (при попытке структурировать БД).

Добавлено: 2011-07-05 12:16:41
Alex Keda
файл не должен быть пустой
вверните внутрь запрос какойнить, типа

Код: Выделить всё

optimize table Tasks;

Re: Ошибка при обновлении (при попытке структурировать БД).

Добавлено: 2011-07-05 13:34:25
vv-master
Говорит, что "Too many keys specified; max 64 keys allowed", может другой какой-нибудь посоветуете ввернуть.

Код: Выделить всё

-- Резервное копирование базы данных

Файл (/usr/local/www/apache22/data/hosts/billing.vv-master.com/tmp/db/jbs_4e12c1756a371.sql.gz) резервной копии имеет размер 1212 Кб.




-- Восстановление профилей

Восстановлено 12 профилей


-- Патчи базы данных

Последний патч базы данных хоста (billing) (1000273)
Применение патча базы данных хоста (billing)
---
ALTER TABLE `Events` ADD KEY (`IsReaded`);
-- SEPARATOR
ALTER TABLE `Events` ADD KEY (`CreateDate`);
-- SEPARATOR
optimize table Tasks;
-- SEPARATOR
---
ERROR: ошибка применения патча (Too many keys specified; max 64 keys allowed)

Re: Ошибка при обновлении (при попытке структурировать БД).

Добавлено: 2011-07-05 13:53:09
vv-master
Вставил:

Код: Выделить всё

show databases;

пропустило...
Теперь остановилось на:

Код: Выделить всё


-- Резервное копирование базы данных

Файл (/usr/local/www/apache22/data/hosts/billing.vv-master.com/tmp/db/jbs_4e12c5b1d4659.sql.gz) резервной копии имеет размер 1212 Кб.




-- Восстановление профилей

Восстановлено 12 профилей


-- Патчи базы данных

Последний патч базы данных хоста (billing) (1000282)
Применение патча базы данных хоста (billing)
---

ALTER TABLE `HostingOrders` ADD `UserNotice` TEXT NOT NULL, ADD `AdminNotice` TEXT NOT NULL;
-- SEPARATOR
ALTER TABLE `VPSOrders`  ADD `UserNotice` TEXT NOT NULL,  ADD `AdminNotice` TEXT NOT NULL;
-- SEPARATOR
ALTER TABLE `DomainsOrders`  ADD `UserNotice` TEXT NOT NULL,  ADD `AdminNotice` TEXT NOT NULL;



---
ERROR: ошибка применения патча (Duplicate column name 'UserNotice')

Re: Ошибка при обновлении (при попытке структурировать БД).

Добавлено: 2011-07-05 14:44:15
Alex Keda
от блин...
смотрите в вкаких таблицах уже есть такая колонка
==
насчёт ключей - это у вас какое-то ограничнеие на базу, думаю.

Re: Ошибка при обновлении (при попытке структурировать БД).

Добавлено: 2011-07-05 17:56:23
vv-master
Восстановил из бекапа самую раннюю базу, затем вместо строки:

Код: Выделить всё

ALTER TABLE `Clauses` ADD KEY `ClausesPartition` (`Partition`) /* IF NOT EXISTS (SHOW KEYS FROM `Clauses` WHERE Key_name = 'ClausesPartition')*/;

в файле 1000274.sql поставил заглушку:

Код: Выделить всё

show databases;


Теперь не находит таблицу VPSOrders, которой, видимо, в ранних версиях просто не существовало.

Код: Выделить всё

---
Применение патча базы данных хоста (billing)
---

ALTER TABLE `HostingOrders` ADD `UserNotice` TEXT NOT NULL, ADD `AdminNotice` TEXT NOT NULL;
-- SEPARATOR
ALTER TABLE `VPSOrders`  ADD `UserNotice` TEXT NOT NULL,  ADD `AdminNotice` TEXT NOT NULL;
-- SEPARATOR
ALTER TABLE `DomainsOrders`  ADD `UserNotice` TEXT NOT NULL,  ADD `AdminNotice` TEXT NOT NULL;

---
ERROR: ошибка применения патча (Table 'jbs.VPSOrders' doesn't exist)


Дайте формат таблицы плиз, попробую руками добавить.

Re: Ошибка при обновлении (при попытке структурировать БД).

Добавлено: 2011-07-05 21:08:36
Alex Keda
вся структура есть в директории db/hosting
новые таблицы идут после комментария, о том что я их добавил....