ECS: Erro de migração do ECSSync: MySQLSyntaxErrorException: Coluna desconhecida 'source_md5' na 'lista de campos'
Summary: A migração do ECSSync é concluída instantaneamente sem que nenhum dos clipes do Centera seja realmente migrado.
Symptoms
A migração do ECSSync é concluída instantaneamente sem que nenhum dos clipes do Centera precise ser realmente migrado.
No arquivo /var/log/ecssync/ecs-sync.log aparece o seguinte erro:
2020-05-04 03:08:38 WARN [sync-pool-1-t-15] SyncTask: O--! objeto DNVBT3VHL1NE1e2NMV9CJDMQV5FG41BCFNF5EM0AC0A4KU05821DC falhou
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Coluna desconhecida 'source_md5' na 'lista de campos'
em sun.reflect.GeneratedConstructorAccessor29.newInstance(Unknown Source)
em sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
... <Saída truncada> . .
Cause
Veja a seguir um exemplo da tabela criada, de acordo com o procedimento mais recente, que não inclui esta coluna:
MariaDB [ecs_sync]> descrever <table_name>;
+-------------------+---------------+------+-----+---------+-------+
| Campo | Tipo | Nulo | Chave | Padrão | Extra |
+-------------------+---------------+------+-----+---------+-------+
| source_id | Varchar(54) | NÃO | O PRI | NULO | |
| target_id | Varchar(54) - Brasil | SIM | | NULO | |
| is_directory | int(11) - Brasil | NÃO | | NULO | |
| tamanho | Bigint(20) - Brasil | SIM | | NULO | |
| mtime - Brasil | datahora | SIM | | NULO | |
| Situação | varchar(32) - Brasil | NÃO | MUL - Brasil | NULO | |
| transfer_start | datahora | SIM | | NULO | |
| transfer_complete | datahora | SIM | | NULO | |
| verify_start | datahora | SIM | | NULO | |
| verify_complete | datahora | SIM | | NULO | |
| retry_count | int(11) - Brasil | SIM | | NULO | |
| error_message | Varchar(2048) | SIM | | NULO | |
| is_source_deleted | int(11) - Brasil | SIM | | NULO |
|+-------------------+---------------+------+-----+---------+-------+
13 linhas no conjunto (0,00 seg)
O ECSSync versão 3.2.9 adicionou uma coluna à tabela do banco de dados para rastrear a soma de verificação MD5 de origem (isso é mencionado nas notas da versão).
Resolution
mysql Shell:
alter table <table_name> add column source_md5 VARCHAR(32);
A tabela deve ser semelhante ao exemplo a seguir, com a coluna adicional:
MariaDB [ecs_sync]> descrever <table_name>;
+-------------------+---------------+------+-----+---------+-------+
| Campo | Tipo | Nulo | Chave | Padrão | Extra |
+-------------------+---------------+------+-----+---------+-------+
| source_id | Varchar(54) | NÃO | O PRI | NULO | |
| target_id | Varchar(54) - Brasil | SIM | | NULO | |
| is_directory | int(11) - Brasil | NÃO | | NULO | |
| tamanho | Bigint(20) - Brasil | SIM | | NULO | |
| mtime - Brasil | datahora | SIM | | NULO | |
| Situação | varchar(32) - Brasil | NÃO | MUL - Brasil | NULO | |
| transfer_start | datahora | SIM | | NULO | |
| transfer_complete | datahora | SIM | | NULO | |
| verify_start | datahora | SIM | | NULO | |
| verify_complete | datahora | SIM | | NULO | |
| retry_count | int(11) - Brasil | SIM | | NULO | |
| error_message | Varchar(2048) | SIM | | NULO | |
| is_source_deleted | int(11) - Brasil | SIM | | NULO | |
| source_md5 | varchar(32) - Brasil | SIM | | NULO |
|+-------------------+---------------+------+-----+---------+-------+
14 linhas no conjunto (0,00 seg)
MariaDB [ecs_sync]>
(em que <table_name> é o nome da tabela existente).