PostgreSQL のバックアップを作成し、ユーザーにこれらのバックアップを圧縮する機会を与えるプログラムがありました。
if bkp_type == 'gz':
command = 'pg_dumpall -U {} -h {} -p {} | gzip > {}'.format(user, server, port, file)
elif bkp_type == 'bz2':
command = 'pg_dumpall -U {} -h {} -p {} | bzip2 > {}'.format(user, server, port, file)
elif bkp_type == 'zip':
command = 'pg_dumpall -U {} -h {} -p {} | zip > {}'.format(user, server, port, file)
else:
command = 'pg_dumpall -U {} -h {} -p {} > {}'.format(user, server, port, file)
result = subprocess.call(command, shell=True)
現在、pg_restore を使用して復元していますが、ファイルが圧縮されていると復元できません。pg_restore (pg_dump や pg_dumpall のように) で直接行う方法はありますか? または、使用されている圧縮の種類を確認して Python で解凍する必要がありますか?