ECS: Chyba migrace ECSSync: MySQLSyntaxErrorException: Neznámý sloupec "source_md5" v seznamu polí
Summary: Migrace ECSSync se okamžitě dokončí, aniž by byl migrován některý z klipů Centera.
Symptoms
Migrace ECSSync se okamžitě dokončí, aniž by se migrovaly klipy Centera.
V souboru /var/log/ecssync/ecs-sync.log se zobrazí následující chyba:
2020-05-04 03:08:38 WARN [sync-pool-1-t-15] SyncTask: O--! objekt DNVBT3VHL1NE1e2NMV9CJDMQV5FG41BCFNF5EM0AC0A4KU05821DC selhal
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Neznámý sloupec "source_md5" v seznamu
polí at sun.reflect.GeneratedConstructorAccessor29.newInstance(Neznámý zdroj)
na sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
... <výstup zkrácen> ..
Cause
Následuje příklad tabulky vytvořené podle nejnovějšího postupu, která tento sloupec nezahrnuje:
MariaDB [ecs_sync]> popsat <table_name>;
+-------------------+---------------+------+-----+---------+-------+
| Obor | Typ: | Null | Klíč | Výchozí | Extra |
+-------------------+---------------+------+-----+---------+-------+
| source_id | varchar(54) | NE | VÚB | NULL | |
| target_id | varchar(54) | ANO | | NULL | |
| is_directory | int(11) | NE | | NULL | |
| velikost | bigint(20) | ANO | | NULL | |
| mtime | datetime | ANO | | NULL | |
| Stav | varchar(32) | NE | MUL | NULL | |
| transfer_start | datetime | ANO | | NULL | |
| transfer_complete | datetime | ANO | | NULL | |
| verify_start | datetime | ANO | | NULL | |
| verify_complete | datetime | ANO | | NULL | |
| retry_count | int(11) | ANO | | NULL | |
| error_message | varchar(2048) | ANO | | NULL | |
| is_source_deleted | int(11) | ANO | | NULL | |
+-------------------+---------------+------+-----+---------+-------+
13 řádků v sadě (0.00 sec)
ECSSync verze 3.2.9 přidal do databázové tabulky sloupec pro sledování zdrojového kontrolního součtu MD5 (to je zmíněno v poznámkách k verzi).
Resolution
mysql Shell:
alter table <table_name> add column source_md5 VARCHAR(32);
Tabulka by měla vypadat jako v následujícím příkladu s dalším sloupcem:
MariaDB [ecs_sync]> popsat <table_name>;
+-------------------+---------------+------+-----+---------+-------+
| Obor | Typ: | Null | Klíč | Výchozí | Extra |
+-------------------+---------------+------+-----+---------+-------+
| source_id | varchar(54) | NE | VÚB | NULL | |
| target_id | varchar(54) | ANO | | NULL | |
| is_directory | int(11) | NE | | NULL | |
| velikost | bigint(20) | ANO | | NULL | |
| mtime | datetime | ANO | | NULL | |
| Stav | varchar(32) | NE | MUL | NULL | |
| transfer_start | datetime | ANO | | NULL | |
| transfer_complete | datetime | ANO | | NULL | |
| verify_start | datetime | ANO | | NULL | |
| verify_complete | datetime | ANO | | NULL | |
| retry_count | int(11) | ANO | | NULL | |
| error_message | varchar(2048) | ANO | | NULL | |
| is_source_deleted | int(11) | ANO | | NULL | |
| source_md5 | varchar(32) | ANO | | NULL | |
+-------------------+---------------+------+-----+---------+-------+
14 řádků v sadě (0.00 sec)
MariaDB [ecs_sync]>
(kde <table_name> je název existující tabulky).