-
Notifications
You must be signed in to change notification settings - Fork 30
Closed
Labels
bugSomething isn't workingSomething isn't working
Description
Bug Description
Exception: unknown mysql type "idx_adgroup_id_type_time (adgroup_id,type,time)"
Steps to Reproduce
After I added some table indexes, the log error is as follows
[dbrepl youtube_data 2025-05-06 11:37:42,041 INFO] launched db_replicator
[dbrepl youtube_data 2025-05-06 11:37:42,052 INFO] running realtime replication from the position: ('ON.000037', 1016234912)
[dbrepl youtube_data 2025-05-06 11:37:46,363 INFO] set position to /data/youtube_data/28.bin
[dbrepl youtube_data 2025-05-06 11:37:47,162 INFO] found transaction ('ON.000037', 1016234912) inside /data/youtube_data/28.bin
[dbrepl youtube_data 2025-05-06 11:37:47,163 DEBUG] processing event ('ON.000037', 1016235172), 3,
[dbrepl youtube_data 2025-05-06 11:37:47,163 DEBUG] processing query event: ('ON.000037', 1016235172), query: ALTER TABLE `adgroup_data` ADD KEY `idx_adgroup_id_type_time` (`adgroup_id`,`type`,`time`)
[dbrepl youtube_data 2025-05-06 11:37:47,171 DEBUG] upload records, to insert: 0, to delete: 0
[dbrepl youtube_data 2025-05-06 11:37:47,174 ERROR] unhandled exception
Traceback (most recent call last):
File "/usr/local/lib/python3.10/site-packages/mysql_ch_replicator/db_replicator.py", line 196, in run
self.run_realtime_replication()
File "/usr/local/lib/python3.10/site-packages/mysql_ch_replicator/db_replicator.py", line 224, in run_realtime_replication
self.realtime_replicator.run_realtime_replication()
File "/usr/local/lib/python3.10/site-packages/mysql_ch_replicator/db_replicator_realtime.py", line 73, in run_realtime_replication
self.handle_event(event)
File "/usr/local/lib/python3.10/site-packages/mysql_ch_replicator/db_replicator_realtime.py", line 94, in handle_event
event_handlers[event.event_type](event)
File "/usr/local/lib/python3.10/site-packages/mysql_ch_replicator/db_replicator_realtime.py", line 174, in handle_query_event
self.handle_alter_query(query, event.db_name)
File "/usr/local/lib/python3.10/site-packages/mysql_ch_replicator/db_replicator_realtime.py", line 185, in handle_alter_query
self.replicator.converter.convert_alter_query(query, db_name)
File "/usr/local/lib/python3.10/site-packages/mysql_ch_replicator/converter.py", line 587, in convert_alter_query
self.__convert_alter_table_add_column(db_name, table_name, tokens)
File "/usr/local/lib/python3.10/site-packages/mysql_ch_replicator/converter.py", line 699, in __convert_alter_table_add_column
column_type_ch = self.convert_field_type(column_type_mysql, column_type_mysql_parameters)
File "/usr/local/lib/python3.10/site-packages/mysql_ch_replicator/converter.py", line 392, in convert_field_type
clickhouse_type = self.convert_type(mysql_type, mysql_parameters)
File "/usr/local/lib/python3.10/site-packages/mysql_ch_replicator/converter.py", line 386, in convert_type
raise Exception(f'unknown mysql type "{mysql_type}"')
Exception: unknown mysql type "`idx_adgroup_id_type_time` (`adgroup_id`,`type`,`time`)"
[dbrepl youtube_data 2025-05-06 11:37:49,053 INFO] launched db_replicator
[dbrepl youtube_data 2025-05-06 11:37:49,064 INFO] running realtime replication from the position: ('ON.000037', 1016234912)
Expected Behavior
Actual Behavior
Environment
- mysql_ch_replicator version: v0.0.82
- Operating System: Debian GNU/Linux 11 (bullseye)
- Python version: 3.10.16
MySQL Configuration
server_id = 1
log_bin=ON
expire_logs_days = 10
max_binlog_size = 1024M
binlog_format = ROW
gtid_mode = on
log_slave_updates = ON
enforce_gtid_consistency = 1Replicator Configuration
mysql:
host: 'mysql'
port: 3306
user: 'root'
password: ''
clickhouse:
host: 'clickhouse'
port: 8123
user: 'default'
password: ''
connection_timeout: 30 # optional
send_receive_timeout: 300 # optional
binlog_replicator:
data_dir: '/data'
records_per_file: 1000000
databases: 'youtube_data'
log_level: 'debug'
initial_replication_threads: 4Additional Information
bakwc
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working