ECS: Fehler bei der ECSSync-Migration: MySQLSyntaxErrorException: Unbekannte Spalte 'source_md5' in 'Feldliste'
Summary: Die ECSSync-Migration wird sofort abgeschlossen, ohne dass einer der Centera-Clips tatsächlich migriert wird.
Symptoms
Die ECSSync-Migration wird sofort abgeschlossen, ohne dass einer der Centera-Clips tatsächlich migriert werden muss.
In der Datei /var/log/ecssync/ecs-sync.log wird der folgende Fehler angezeigt:
2020-05-04 03:08:38 WARN [sync-pool-1-t-15] SyncTask: O--! Objekt DNVBT3VHL1NE1e2NMV9CJDMQV5FG41BCFNF5EM0AC0A4KU05821DC fehlgeschlagen
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unbekannte Spalte 'source_md5' in 'Feldliste'
bei sun.reflect.GeneratedConstructorAccessor29.newInstance(Unbekannte Quelle)
bei sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
... <Ausgabe gekürzt> ..
Cause
Im Folgenden finden Sie ein Beispiel für die Tabelle, die gemäß dem neuesten Verfahren erstellt wurde, das diese Spalte nicht enthält:
MariaDB [ecs_sync]> beschreiben <table_name>;
+-------------------+---------------+------+-----+---------+-------+
| Feld | Typ | Null | Schlüssel | Standardeinstellung | Extra |
+-------------------+---------------+------+-----+---------+-------+
| source_id | varchar(54) | NEIN | PRI | NULL | |
| target_id | varchar(54) | JA | | NULL | |
| is_directory | int(11) | NEIN | | NULL | |
| Größe | bigint(20) | JA | | NULL | |
| mtime | Datum/Uhrzeit | JA | | NULL | |
| Status | varchar(32) | NEIN | MUL | NULL | |
| transfer_start | Datum/Uhrzeit | JA | | NULL | |
| transfer_complete | Datum/Uhrzeit | JA | | NULL | |
| verify_start | Datum/Uhrzeit | JA | | NULL | |
| verify_complete | Datum/Uhrzeit | JA | | NULL | |
| retry_count | int(11) | JA | | NULL | |
| error_message | varchar(2048) | JA | | NULL | |
| is_source_deleted | int(11) | JA | | NULL |
|+-------------------+---------------+------+-----+---------+-------+
13 Reihen im Satz (0,00 Sek.)
ECSSync-Version 3.2.9 hat der Datenbanktabelle eine Spalte hinzugefügt, um die MD5-Quellprüfsumme nachzuverfolgen (dies wird in den Versionshinweisen erwähnt).
Resolution
mysql Muschel:
alter table <table_name> add column source_md5 VARCHAR(32);
Die Tabelle sollte wie im folgenden Beispiel aussehen, mit der zusätzlichen Spalte:
MariaDB [ecs_sync]> beschreiben <table_name>;
+-------------------+---------------+------+-----+---------+-------+
| Feld | Typ | Null | Schlüssel | Standardeinstellung | Extra |
+-------------------+---------------+------+-----+---------+-------+
| source_id | varchar(54) | NEIN | PRI | NULL | |
| target_id | varchar(54) | JA | | NULL | |
| is_directory | int(11) | NEIN | | NULL | |
| Größe | bigint(20) | JA | | NULL | |
| mtime | Datum/Uhrzeit | JA | | NULL | |
| Status | varchar(32) | NEIN | MUL | NULL | |
| transfer_start | Datum/Uhrzeit | JA | | NULL | |
| transfer_complete | Datum/Uhrzeit | JA | | NULL | |
| verify_start | Datum/Uhrzeit | JA | | NULL | |
| verify_complete | Datum/Uhrzeit | JA | | NULL | |
| retry_count | int(11) | JA | | NULL | |
| error_message | varchar(2048) | JA | | NULL | |
| is_source_deleted | int(11) | JA | | NULL | |
| source_md5 | varchar(32) | JA | | NULL |
|+-------------------+---------------+------+-----+---------+-------+
14 Zeilen im Satz (0,00 Sek.)
MariaDB [ecs_sync]>
(Dabei <ist table_name> der Name Ihrer vorhandenen Tabelle).