Перейти к основному содержанию

Seafile 12 — ошибка после обновления Table seafile-db.gcid doesn't exist

Seafile

После апгрейда 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

Виновато в этом отсутствие в базе 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;

seafile

Загрузка через web заработала.

seafile

Теги

 

Похожие материалы