diff options
author | Heikki Linnakangas <heikki.linnakangas@iki.fi> | 2015-03-23 19:47:52 +0200 |
---|---|---|
committer | Heikki Linnakangas <heikki.linnakangas@iki.fi> | 2015-03-23 19:47:52 +0200 |
commit | 61081e75c6741024f7717ade0450090590e96c85 (patch) | |
tree | 9b4fde1d8bae566036df68eecdfd84b896e14b57 /src/bin/pg_rewind/t/002_databases.pl | |
parent | 87cec51d3ad1107f6f224ed7d773e70c8896e4c0 (diff) | |
download | postgresql-61081e75c6741024f7717ade0450090590e96c85.tar.gz postgresql-61081e75c6741024f7717ade0450090590e96c85.zip |
Add pg_rewind, for re-synchronizing a master server after failback.
Earlier versions of this tool were available (and still are) on github.
Thanks to Michael Paquier, Alvaro Herrera, Peter Eisentraut, Amit Kapila,
and Satoshi Nagayasu for review.
Diffstat (limited to 'src/bin/pg_rewind/t/002_databases.pl')
-rw-r--r-- | src/bin/pg_rewind/t/002_databases.pl | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/src/bin/pg_rewind/t/002_databases.pl b/src/bin/pg_rewind/t/002_databases.pl new file mode 100644 index 00000000000..709c81e2650 --- /dev/null +++ b/src/bin/pg_rewind/t/002_databases.pl @@ -0,0 +1,41 @@ +use strict; +use warnings; +use TestLib; +use Test::More tests => 2; + +use RewindTest; + +my $testmode = shift; + +RewindTest::init_rewind_test('databases', $testmode); +RewindTest::setup_cluster(); + +# Create a database in master. +master_psql('CREATE DATABASE inmaster'); + +RewindTest::create_standby(); + +# Create another database, the creation is replicated to the standby +master_psql('CREATE DATABASE beforepromotion'); + +RewindTest::promote_standby(); + +# Create databases in the old master and the new promoted standby. +master_psql('CREATE DATABASE master_afterpromotion'); +standby_psql('CREATE DATABASE standby_afterpromotion'); +# The clusters are now diverged. + +RewindTest::run_pg_rewind(); + +# Check that the correct databases are present after pg_rewind. +check_query('SELECT datname FROM pg_database', + qq(template1 +template0 +postgres +inmaster +beforepromotion +standby_afterpromotion +), + 'database names'); + +exit(0); |