После апгрейда Seafile до версии 12 можно поймать ошибки вида:
Failed to prepare sql SELECT gc_id FROM GCID WHERE repo_id = ? FOR UPDATE: Table 'seafile-db.gcid' doesn't exist
или
Failed to save gc id: Error 1146: Table 'seafile_db.GCID' doesn't exist
Failed to save gc id: Error 1146: Table 'seafile_db.LastGCID' doesn't exist
Проблема сопровождается невозможностью загрузить любой файл через Web интерфейс.
Виновато в этом отсутствие в базе seafile_db таблиц:
- GCID
- LastGCID
Скрипт обновления просто не создаёт эти таблицы. Вероятно, их просто забыли добавить в скрипт апгрейда. Ошибка проявилась из-за того, что в Community edition добавили онлайн сборку мусора. В профессиональной версии Seafile данные таблицы уже давно существуют, никто и не подумал, что в версии Community их нужно создать.
Устраняем ошибку путём создания недостающих таблиц:
CREATE TABLE IF NOT EXISTS GCID (
id BIGINT NOT NULL PRIMARY KEY AUTO_INCREMENT,
repo_id CHAR(36),
gc_id CHAR(36),
UNIQUE INDEX(repo_id)
) ENGINE=INNODB;
CREATE TABLE IF NOT EXISTS LastGCID (
id BIGINT NOT NULL PRIMARY KEY AUTO_INCREMENT,
repo_id CHAR(36),
client_id VARCHAR(128),
gc_id CHAR(36),
UNIQUE INDEX(repo_id, client_id)
) ENGINE=INNODB;Загрузка через web заработала.



