@@ -253,7 +253,12 @@ def update(self, event_or_events):
253
253
continue # for event
254
254
255
255
event_converted = self .convert (event )
256
- pk = event_converted .pymysqlreplication_event .primary_key
256
+ pk = [event_converted .pymysqlreplication_event .primary_key ]
257
+ if event_converted .table == 'assets' :
258
+ pk .append ('name' )
259
+ pk .append ('title_id' )
260
+ pk .append ('company_id' )
261
+ pk .append ('asset_type_enumeration_entry_id' )
257
262
for row in event_converted .pymysqlreplication_event .rows :
258
263
for key in row ['after_values' ].keys ():
259
264
# we need to convert Decimal value to str value for suitable for table structure
@@ -284,10 +289,10 @@ def update(self, event_or_events):
284
289
sql = 'ALTER TABLE `{0}`.`{1}` UPDATE {2}, `tb_upd`={3} where {4}' .format (
285
290
schema ,
286
291
table ,
287
- ', ' .join (filter (None , map (lambda column , value : "" if column == pk or value is None else self .get_data_format (column , value ), row ['after_values' ].keys (), row ['after_values' ].values ()))),
292
+ ', ' .join (filter (None , map (lambda column , value : "" if column in pk or value is None else self .get_data_format (column , value ), row ['after_values' ].keys (), row ['after_values' ].values ()))),
288
293
"'%s'" % datetime .datetime .now ().strftime ("%Y-%m-%d %H:%M:%S" ),
289
294
' and ' .join (filter (None , map (
290
- lambda column , value : "" if column != pk or value is None else self .get_data_format (column , value ),
295
+ lambda column , value : "" if column not in pk or value is None else self .get_data_format (column , value ),
291
296
row ['before_values' ].keys (), row ['before_values' ].values ())))
292
297
)
293
298
0 commit comments