@@ -584,6 +584,12 @@ def get_backup_filelist_diff(self, filelist_A, filelist_B):
584584
585585return filelist_diff
586586
587+ # used for partial restore
588+ def truncate_every_file_in_dir (self ,path ):
589+ for file in os .listdir (path ):
590+ with open (os .path .join (path ,file ),"w" )as f :
591+ f .close ()
592+
587593def check_ptrack_recovery (self ,idx_dict ):
588594size = idx_dict ['size' ]
589595for PageNum in range (size ):
@@ -734,20 +740,24 @@ def clean_pb(self, backup_dir):
734740
735741def backup_node (
736742self ,backup_dir ,instance ,node ,data_dir = False ,
737- backup_type = 'full' ,options = [],asynchronous = False ,gdb = False ,
743+ backup_type = 'full' ,datname = False ,options = [],
744+ asynchronous = False ,gdb = False ,
738745old_binary = False ,return_id = True
739746 ):
740747if not node and not data_dir :
741748print ('You must provide ether node or data_dir for backup' )
742749exit (1 )
743750
751+ if not datname :
752+ datname = 'postgres'
753+
744754cmd_list = [
745755'backup' ,
746756'-B' ,backup_dir ,
747757'--instance={0}' .format (instance ),
748758# "-D", pgdata,
749759'-p' ,'%i' % node .port ,
750- '-d' ,'postgres'
760+ '-d' ,datname
751761 ]
752762
753763if data_dir :