при обновлении roundcube возникает ошибка:

 
Running update script at target...
Executing database schema update.
Error 500: Error in DDL upgrade 2016112200: [1060] Duplicate column name 'id'
Updating database schema (2016112200)... [FAILED]

Она сообщает, что при попытке обновления mysql-базы roundcube, скрипт пытается создать колонку, которая уже существует.
Выход - либо поправить скрипт обновления, либо привести базу в соответствие со скриптом. Я попытался привести базу в соответствие со скриптом. Запускаем mysql и удаляем руками колонку id из таблицы dictionary

sudo mysql
mysql> USE roundcubemail;
mysql> ALTER TABLE dictionary DROP id;

После этого - восстанавливаю папку с roundcube из бекапа в состояние, которое было до апгрейда (/opt/www/roundcube) и пытаюсь запустить апгрейд снова.
Теперь скрипт ругается на отсутствие прав на некоторые таблицы. Даем эти права:

sudo mysql
mysql> USE roundcubemail;
mysql> GRANT CREATE ON roundcubemail.* TO 'roundcube'@'localhost';
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,DROP ON cache_shared to 'roundcube'@'localhost';
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,DROP ON cache to 'roundcube'@'localhost';
mysql> GRANT REFERENCES ON users to 'roundcube'@'localhost';
mysql> flush privileges;

В дальнейшем mysql-скрипт 2016112200 ругался еще на какие-то объекты, которые уже были в базе, а он пытался их пересоздать и я отредактировал сам скрипт из папки ./SQL/… В общем - обновиться получилось.

Enter your comment. Wiki syntax is allowed:
 
  • linux_faq/roundcubemail_upgrade_error_database_schema_update.txt
  • Last modified: 2019/02/11 09:13
  • by 127.0.0.1