postgres 8.x から 9.x にアップグレードし、 --link オプションを指定して pg_upgrade を実行した後、8.x に「ダウングレード」した場合 (つまり、pg-9 デーモンを停止し、 pg-8 デーモン)?
特に、pg-9 でテーブルにデータを挿入したとします。pg-8 にダウングレードした後、そのデータを見つけることができますか? そのデータを挿入したテーブルがpg_upgradeの時点ですでに存在していたかどうかに依存しますか? そして (ひねくれ者と呼んでください) pg-9 に再アップグレードし、pg-8 に再ダウングレードするなどを何度も繰り返したとします。保証はありますか、それともチャンスをつかんでいますか?
私はいくつかの小規模なテストを行いました。私が見つけたのは、最初のダウングレードの後、pg_upgrade を実行する前のデータにほぼ戻っていることです。大まかに、正確ではありません。そして、アップグレードとダウングレードのサイクルごとに、より「大雑把」になっているようです。
これで、「大まかに」の部分を受け入れることができます。ただし、私が本当に嫌いなのは、再再アップグレード/ダウングレードを何度も繰り返した後、取り返しのつかないほど破損した DB になってしまうことです。それは心配すべきですか?
最後に、pg_dump については知っていますが、時間とストレージの理由から、可能であれば避けたいと思います。