ECS: ECSSync Geçiş Hatası: MySQLSyntaxErrorException: 'Alan listesi'nde bilinmeyen 'source_md5' sütunu
Summary: ECSSync geçişi, Centera kliplerinin hiçbiri taşınmadan anında tamamlanır.
Symptoms
Sorun, Centera'dan ECS'ye ECSSync geçişi sırasında oluşur.
ECSSync geçişi, taşınacak Centera kliplerinden herhangi biri olmadan anında tamamlanır.
/var/log/ecssync/ecs-sync.log dosyasında aşağıdaki hata görüntülenir:
2020-05-04 03:08:38 WARN [sync-pool-1-t-15] SyncTask: O--! object DNVBT3VHL1NE1e2NMV9CJDMQV5FG41BCFNF5EM0AC0A4KU05821DC failed
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'source_md5' in 'field list'
at sun.reflect.GeneratedConstructorAccessor29.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
... <output truncated> ..
Cause
Hata, ECSSync'in önceki bir sürümü tarafından oluşturulan bir veritabanı tablosu kullandığınız için oluşur.
Aşağıda, en son prosedüre göre oluşturulan tabloya bir örnek verilmiştir. Bu tablo, source_md5 sütununu içermez:
MariaDB [ecs_sync]> describe <table_name>; +-------------------+---------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------------------+---------------+------+-----+---------+-------+ | source_id | varchar(54) | NO | PRI | NULL | | | target_id | varchar(54) | YES | | NULL | | | is_directory | int(11) | NO | | NULL | | | size | bigint(20) | YES | | NULL | | | mtime | datetime | YES | | NULL | | | status | varchar(32) | NO | MUL | NULL | | | transfer_start | datetime | YES | | NULL | | | transfer_complete | datetime | YES | | NULL | | | verify_start | datetime | YES | | NULL | | | verify_complete | datetime | YES | | NULL | | | retry_count | int(11) | YES | | NULL | | | error_message | varchar(2048) | YES | | NULL | | | is_source_deleted | int(11) | YES | | NULL | | +-------------------+---------------+------+-----+---------+-------+ 13 rows in set (0.00 sec)
ECSSync sürüm 3.2.9, kaynak MD5 sağlama toplamını izlemek için veritabanı tablosuna bir sütun ekledi (bu, sürüm notlarında belirtilmiştir).
Resolution
Bu sürüme yükselttikten sonra yeni bir veritabanı tablosu oluşturmanız veya uygun sütunu eklemeniz gerekir. MySQL kabuğunda aşağıdakileri gerçekleştirin:
alter table <table_name> add column source_md5 VARCHAR(32);
Tablo, ek sütunla birlikte aşağıdaki örnekteki gibi görünmelidir:
MariaDB [ecs_sync]> describe <table_name>; +-------------------+---------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------------------+---------------+------+-----+---------+-------+ | source_id | varchar(54) | NO | PRI | NULL | | | target_id | varchar(54) | YES | | NULL | | | is_directory | int(11) | NO | | NULL | | | size | bigint(20) | YES | | NULL | | | mtime | datetime | YES | | NULL | | | status | varchar(32) | NO | MUL | NULL | | | transfer_start | datetime | YES | | NULL | | | transfer_complete | datetime | YES | | NULL | | | verify_start | datetime | YES | | NULL | | | verify_complete | datetime | YES | | NULL | | | retry_count | int(11) | YES | | NULL | | | error_message | varchar(2048) | YES | | NULL | | | is_source_deleted | int(11) | YES | | NULL | | | source_md5 | varchar(32) | YES | | NULL | | +-------------------+---------------+------+-----+---------+-------+ 14 rows in set (0.00 sec) MariaDB [ecs_sync]>
(burada <table_name> mevcut tablonuzun adıdır).