ECS. Ошибка переноса ECSSync: MySQLSyntaxErrorException: Неизвестный столбец «source_md5» в «списке полей»
Summary: Миграция ECSSync завершается мгновенно без переноса каких-либо клипов Centera.
Symptoms
Миграция ECSSync завершается мгновенно, без необходимости переноса каких-либо зажимов Centera.
В файле /var/log/ecssync/ecs-sync.log появляется следующая ошибка:
2020-05-04 03:08:38 WARN [sync-pool-1-t-15] SyncTask: O--! объект DNVBT3VHL1NE1e2NMV9CJDMQV5FG41BCFNF5EM0AC0A4KU05821DC завершился сбоем
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Неизвестный столбец «source_md5» в «списке полей»
в sun.reflect.GeneratedConstructorAccessor29.newInstance(неизвестный источник)
в sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
... <вывод усечен> ..
Cause
Ниже приведен пример таблицы, созданной в соответствии с последней процедурой и не содержащей этого столбца:
MariaDB [ecs_sync]> описывают <table_name>;
+-------------------+---------------+------+-----+---------+-------+
| Поле | Тип | Ноль | Ключ | По умолчанию | Экстра |
+-------------------+---------------+------+-----+---------+-------+
| source_id | varchar(54) | НЕТ | ПРИИ | NULL | |
| target_id | Варчар(54) | НЕТ | | NULL | |
| is_directory | int(11) | НЕТ | | NULL | |
| Размер | bigint(20) | НЕТ | | NULL | |
| Мтайм | Дата и время | НЕТ | | NULL | |
| статус | varchar(32) | НЕТ | МУЛ | NULL | |
| transfer_start | Дата и время | НЕТ | | NULL | |
| transfer_complete | Дата и время | НЕТ | | NULL | |
| verify_start | Дата и время | НЕТ | | NULL | |
| verify_complete | Дата и время | НЕТ | | NULL | |
| retry_count | int(11) | НЕТ | | NULL | |
| error_message | varchar(2048) | НЕТ | | NULL | |
| is_source_deleted | int(11) | НЕТ | | NULL |
|+-------------------+---------------+------+-----+---------+-------+
13 рядов в наборе (0.00 сек)
В ECSSync версии 3.2.9 в таблицу базы данных добавлен столбец для отслеживания контрольной суммы исходного MD5 (он упоминается в примечаниях к выпуску).
Resolution
mysql Оболочки:
alter table <table_name> add column source_md5 VARCHAR(32);
Таблица должна выглядеть, как в следующем примере, с дополнительным столбцом:
MariaDB [ecs_sync]> описывают <table_name>;
+-------------------+---------------+------+-----+---------+-------+
| Поле | Тип | Ноль | Ключ | По умолчанию | Экстра |
+-------------------+---------------+------+-----+---------+-------+
| source_id | varchar(54) | НЕТ | ПРИИ | NULL | |
| target_id | Варчар(54) | НЕТ | | NULL | |
| is_directory | int(11) | НЕТ | | NULL | |
| Размер | bigint(20) | НЕТ | | NULL | |
| Мтайм | Дата и время | НЕТ | | NULL | |
| статус | varchar(32) | НЕТ | МУЛ | NULL | |
| transfer_start | Дата и время | НЕТ | | NULL | |
| transfer_complete | Дата и время | НЕТ | | NULL | |
| verify_start | Дата и время | НЕТ | | NULL | |
| verify_complete | Дата и время | НЕТ | | NULL | |
| retry_count | int(11) | НЕТ | | NULL | |
| error_message | varchar(2048) | НЕТ | | NULL | |
| is_source_deleted | int(11) | НЕТ | | NULL | |
| source_md5 | varchar(32) | НЕТ | | NULL |
|+-------------------+---------------+------+-----+---------+-------+
14 строк в наборе (0.00 сек)
MariaDB [ecs_sync]>
(где <table_name> — имя существующей таблицы).