ECS: Błąd migracji ECSSync: MySQLSyntaxErrorException: Nieznana kolumna "source_md5" na liście pól
Summary: Migracja ECSSync jest natychmiast kończona bez faktycznej migracji żadnego z klipów Centera.
Symptoms
Migracja ECSSync jest natychmiast zakończona bez konieczności migracji żadnego z klipów Centera.
W pliku /var/log/ecssync/ecs-sync.log pojawia się następujący błąd:
2020-05-04 03:08:38 WARN [sync-pool-1-t-15] SyncTask: O--! object DNVBT3VHL1NE1e2NMV9CJDMQV5FG41BCFNF5EM0AC0A4KU05821DC failed
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Nieznana kolumna "source_md5" na liście
pól pod adresem sun.reflect.GeneratedConstructorAccessor29.newInstance(Unknown Source)
pod adresem sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
... <Dane wyjściowe obcięte> ..
Cause
Poniżej przedstawiono przykład tabeli utworzonej zgodnie z najnowszą procedurą, która nie zawiera tej kolumny:
MariaDB [ecs_sync]> opisują <table_name>;
+-------------------+---------------+------+-----+---------+-------+
| Dziedzina | Rodzaj | Zerowy | Klucz | Domyślne | Dodatkowy |
+-------------------+---------------+------+-----+---------+-------+
| source_id | varchar(54) | NIE | PRI | NULL | |
| target_id | Varchar(54) | TAK | | NULL | |
| is_directory | int(11) | NIE | | NULL | |
| rozmiar | Bigint(20) | TAK | | NULL | |
| mtime | data/godzina | TAK | | NULL | |
| Status | Varchar(32) | NIE | MUL | NULL | |
| transfer_start | data/godzina | TAK | | NULL | |
| transfer_complete | data/godzina | TAK | | NULL | |
| verify_start | data/godzina | TAK | | NULL | |
| verify_complete | data/godzina | TAK | | NULL | |
| retry_count | int(11) | TAK | | NULL | |
| error_message | varchar(2048) | TAK | | NULL | |
| is_source_deleted | int(11) | TAK | | NULL | |
+-------------------+---------------+------+-----+---------+-------+
13 rzędów w zestawie (0.00 s)
W oprogramowaniu ECSSync w wersji 3.2.9 dodano kolumnę do tabeli bazy danych umożliwiającą śledzenie źródłowej sumy kontrolnej MD5 (jest to wspomniane w informacjach dotyczących wydania).
Resolution
mysql Powłoki:
alter table <table_name> add column source_md5 VARCHAR(32);
Tabela powinna wyglądać podobnie do poniższego przykładu, z dodatkową kolumną:
MariaDB [ecs_sync]> opisują <table_name>;
+-------------------+---------------+------+-----+---------+-------+
| Dziedzina | Rodzaj | Zerowy | Klucz | Domyślne | Dodatkowy |
+-------------------+---------------+------+-----+---------+-------+
| source_id | varchar(54) | NIE | PRI | NULL | |
| target_id | Varchar(54) | TAK | | NULL | |
| is_directory | int(11) | NIE | | NULL | |
| rozmiar | Bigint(20) | TAK | | NULL | |
| mtime | data/godzina | TAK | | NULL | |
| Status | Varchar(32) | NIE | MUL | NULL | |
| transfer_start | data/godzina | TAK | | NULL | |
| transfer_complete | data/godzina | TAK | | NULL | |
| verify_start | data/godzina | TAK | | NULL | |
| verify_complete | data/godzina | TAK | | NULL | |
| retry_count | int(11) | TAK | | NULL | |
| error_message | varchar(2048) | TAK | | NULL | |
| is_source_deleted | int(11) | TAK | | NULL | |
| source_md5 | Varchar(32) | TAK | | NULL | |
+-------------------+---------------+------+-----+---------+-------+
14 wierszy w zestawie (0.00 s)
MariaDB [ecs_sync]>
(gdzie <table_name> jest nazwą istniejącej tabeli).