@@ -301,13 +301,13 @@ def restore_indexes(self, warning_queue):
301301 exception_type , exception_class , trcback = sys .exc_info ()
302302 warning_queue .put ((exception_type , exception_class , traceback .extract_tb (trcback ), self ._source .name ))
303303
304- self .query_runner (
305- "Write hook from: %s.%s" %
306- ( self . db , self . table ), query . db (
307- self .db ) .table (
308- self .table ). get_write_hook ())
309- try :
310- if self . write_hook :
304+ if self .write_hook :
305+ self . query_runner (
306+ "Write hook from: %s.%s" %
307+ ( self .db , self .table ), query . db (
308+ self .db ). table (
309+ self . table ). get_write_hook ())
310+ try :
311311 self .query_runner (
312312 "drop hook: %s.%s" % (self .db , self .table ),
313313 query .db (self .db ).table (self .table ).set_write_hook (None )
@@ -316,9 +316,9 @@ def restore_indexes(self, warning_queue):
316316 "create hook: %s.%s:%s" % (self .db , self .table , self .write_hook ),
317317 query .db (self .db ).table (self .table ).set_write_hook (self .write_hook ["function" ])
318318 )
319- except RuntimeError :
320- exception_type , exception_class , trcback = sys .exc_info ()
321- warning_queue .put ((exception_type , exception_class , traceback .extract_tb (trcback ), self ._source .name ))
319+ except RuntimeError :
320+ exception_type , exception_class , trcback = sys .exc_info ()
321+ warning_queue .put ((exception_type , exception_class , traceback .extract_tb (trcback ), self ._source .name ))
322322
323323 def batches (self , batch_size = None , warning_queue = None ):
324324
@@ -1339,6 +1339,7 @@ def parse_sources(options, files_ignored=None):
13391339 def parse_info_file (path ):
13401340 primary_key = None
13411341 indexes = []
1342+ write_hook = None
13421343 with open (path , 'r' ) as info_file :
13431344 metadata = json .load (info_file )
13441345 if "primary_key" in metadata :
@@ -1349,6 +1350,8 @@ def parse_info_file(path):
13491350 write_hook = metadata ["write_hook" ]
13501351 return primary_key , indexes , write_hook
13511352
1353+ has_write_hooks = utils_common .check_minimum_version (options , '2.3.7' , False )
1354+
13521355 sources = set ()
13531356 if files_ignored is None :
13541357 files_ignored = []
@@ -1382,6 +1385,8 @@ def parse_info_file(path):
13821385 indexes = info_indexes
13831386 if write_hook is None :
13841387 write_hook = info_write_hook
1388+ if write_hook and not has_write_hooks :
1389+ raise Exception ('this RDB version doesn\' t support write-hooks' )
13851390
13861391 sources .add (
13871392 table_type (
@@ -1446,6 +1451,8 @@ def parse_info_file(path):
14461451 files_ignored .append (os .path .join (root , filename ))
14471452 else :
14481453 primary_key , indexes , write_hook = parse_info_file (info_path )
1454+ if write_hook and not has_write_hooks :
1455+ raise Exception ('RDB versions below doesn\' t support write-hooks' )
14491456
14501457 table_type = None
14511458 if ext == ".json" :
0 commit comments