mirror of
https://github.com/neondatabase/neon.git
synced 2026-01-10 15:02:56 +00:00
34 lines
1.4 KiB
Python
34 lines
1.4 KiB
Python
import os
|
|
from pathlib import Path
|
|
|
|
from fixtures.neon_fixtures import (NeonEnvBuilder,
|
|
VanillaPostgres,
|
|
PortDistributor,
|
|
PgBin,
|
|
base_dir,
|
|
pg_distrib_dir)
|
|
|
|
|
|
def test_wal_restore(neon_env_builder: NeonEnvBuilder,
|
|
pg_bin: PgBin,
|
|
test_output_dir: Path,
|
|
port_distributor: PortDistributor):
|
|
env = neon_env_builder.init_start()
|
|
env.neon_cli.create_branch("test_wal_restore")
|
|
pg = env.postgres.create_start('test_wal_restore')
|
|
pg.safe_psql("create table t as select generate_series(1,300000)")
|
|
tenant_id = pg.safe_psql("show neon.tenant_id")[0][0]
|
|
env.neon_cli.pageserver_stop()
|
|
port = port_distributor.get_port()
|
|
data_dir = test_output_dir / 'pgsql.restored'
|
|
with VanillaPostgres(data_dir, PgBin(test_output_dir), port) as restored:
|
|
pg_bin.run_capture([
|
|
os.path.join(base_dir, 'libs/utils/scripts/restore_from_wal.sh'),
|
|
os.path.join(pg_distrib_dir, 'bin'),
|
|
str(test_output_dir / 'repo' / 'safekeepers' / 'sk1' / str(tenant_id) / '*'),
|
|
str(data_dir),
|
|
str(port)
|
|
])
|
|
restored.start()
|
|
assert restored.safe_psql('select count(*) from t', user='cloud_admin') == [(300000, )]
|