Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit ff2053b

Browse files
committed
[Issue #249] added tests.restore.RestoreTest.test_issue_249
1 parent f2ddb9f commit ff2053b

File tree

1 file changed

+70
-0
lines changed

1 file changed

+70
-0
lines changed

tests/restore.py

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3409,3 +3409,73 @@ def test_restore_primary_slot_info(self):
34093409

34103410
# Clean after yourself
34113411
self.del_test_dir(module_name, fname)
3412+
3413+
def test_issue_249(self):
3414+
"""
3415+
https://github.com/postgrespro/pg_probackup/issues/249
3416+
"""
3417+
fname = self.id().split('.')[3]
3418+
backup_dir = os.path.join(self.tmp_path, module_name, fname, 'backup')
3419+
node = self.make_simple_node(
3420+
base_dir=os.path.join(module_name, fname, 'node'),
3421+
initdb_params=['--data-checksums'],
3422+
pg_options={'autovacuum': 'off'})
3423+
3424+
self.init_pb(backup_dir)
3425+
self.add_instance(backup_dir, 'node', node)
3426+
self.set_archiving(backup_dir, 'node', node)
3427+
node.slow_start()
3428+
3429+
node.safe_psql(
3430+
'postgres',
3431+
'CREATE database db1')
3432+
3433+
node.pgbench_init(scale=5)
3434+
3435+
node.safe_psql(
3436+
'postgres',
3437+
'CREATE TABLE t1 as SELECT * from pgbench_accounts where aid > 200000 and aid < 450000')
3438+
3439+
node.safe_psql(
3440+
'postgres',
3441+
'DELETE from pgbench_accounts where aid > 200000 and aid < 450000')
3442+
3443+
node.safe_psql(
3444+
'postgres',
3445+
'select * from pgbench_accounts')
3446+
3447+
# FULL backup
3448+
self.backup_node(backup_dir, 'node', node)
3449+
3450+
node.safe_psql(
3451+
'postgres',
3452+
'INSERT INTO pgbench_accounts SELECT * FROM t1')
3453+
3454+
# restore FULL backup
3455+
node_restored_1 = self.make_simple_node(
3456+
base_dir=os.path.join(module_name, fname, 'node_restored_1'))
3457+
node_restored_1.cleanup()
3458+
3459+
self.restore_node(
3460+
backup_dir, 'node',
3461+
node_restored_1, options=["--db-include=db1"])
3462+
3463+
self.set_auto_conf(
3464+
node_restored_1,
3465+
{'port': node_restored_1.port, 'hot_standby': 'on'})
3466+
3467+
node_restored_1.slow_start()
3468+
3469+
node_restored_1.safe_psql(
3470+
'db1',
3471+
'select 1')
3472+
3473+
try:
3474+
node_restored_1.safe_psql(
3475+
'postgres',
3476+
'select 1')
3477+
except QueryException as e:
3478+
self.assertIn('FATAL', e.message)
3479+
3480+
# Clean after yourself
3481+
self.del_test_dir(module_name, fname)

0 commit comments

Comments
 (0)