Migration to Version 13¶
以前のリリースからデータを移行するには、 pg_dumpall または pg_upgrade を使用したダンプ/復元またはロジカルレプリケーションが必要です。 pg_upgradeたインストールのアップグレード を参照して、新しいメジャーリリースに移行してください。
バージョン13には、以前のリリースとの互換性に影響する可能性のある多くの変更が含まれています。次の非互換性がリストされています。
SIMILAR TO ... ESCAPE NULLを変更してNULLを結果ます。この新しい動作は、SQL仕様に一致します。以前は、デフォルトのエスケープ文字列(バックスラッシュ文字)を使用することを意味するために、
ESCAPE値がnullでした。これはsubstring(text FROM pattern ESCAPE text)にも適用されます。以前の動作は、オリジナルのファンクションを変更せずに維持することにより、古いビューで保持されています。json[b]_to_tsvector()がstringオプションのスペルを完全にチェックするようにします。デフォルト以外の
effective_io_concurrency値が並行性に与える影響を変更します。以前は、この値は、同時リクエストの数を設定する前に調整されていました。これで、値が直接使用されます。古い値から新しい値への変換は、次を使用して実行できます。
SELECT round(sum(OLDVALUE / n::float)) AS newvalue FROM generate_ series(1, OLDVALUE) s(n);
pg_stat_sslおよびpg_stat_gssapiシステムビューで補助プロセスが表示されないようにします。これらのビューをpg_stat_activityに結合し、補助プロセスを表示結合クエリでは、左結合を使用する必要があります。一貫性を改善するために、さまざまな
wait eventsの名前を変更します。ALTER FOREIGN TABLE ... RENAME COLUMNを修正して、より適切なコマンドタグを結果ます。以前はALTER TABLEを返しました。現在、ALTER FOREIGN TABLEを返します。ALTER MATERIALIZED VIEW ... RENAME COLUMNを修正して、より適切なコマンドタグを結果ます。以前はALTER TABLEを返しました。現在、ALTER MATERIALIZED VIEWを返します。設定パラメータ
wal_keep_segmentsの名前をwal_keep_sizeに変更します。これにより、スタンバイサーバ用に保持するWALの量が決まります。古いパラメータのようにファイル数ではなく、メガバイト単位で指定されます。以前に
wal_keep_segmentsを使用した場合、次の式はほぼ同等の設定を提供します。wal_keep_size = wal_keep_segments * wal_segment_size (typically 16MB)
PostgreSQL8.0より前の構文を使用した演算子クラスの定義のサポートを削除し構文。
PostgreSQL7.3より前の構文を使用した外部キーコンストレインの定義のサポートを削除し構文。
PostgreSQL7.3より前のサーバーで使用されていた/"opaque/"疑似データ型のサポートを削除します。
パッケージ化されていない(9.1より前の)拡張機能のアップグレード処理のサポートを削除します。
CREATE EXTENSIONのFROMオプションはサポートされなくなりました。まだパッケージ化されていない拡張機能を使用しているインストールは、PostgreSQL13に更新する前にパッケージ化されたバージョンにアップグレードする必要があります。タイムゾーンデータベースの
posixrulesファイルのサポートを削除します。IANAのタイムゾーングループはこの機能を非推奨にしました。つまり、今後数年間でシステムのタイムゾーンデータベースから次第に消えていきます。タイムゾーンデータの更新で予期しない動作の変化が現れるのではなく、バージョン13からこの機能に対するPostgreSQLのサポートを削除しました。これは、明示的な夏時間移行ルールがないPOSIXスタイルのタイムゾーン仕様の動作にのみ影響します。以前の移行ルールは、カスタム
posixrulesファイルをインストールすることで決定できましたが、現在はハードワイヤードです。影響を受けるインストールの推奨される修正プログラムは、地理的なタイムゾーン名前の使用をスタートすることです。ltreeで、
lqueryパターンにブレース付きの隣接するアスタリスクが含まれている場合、たとえば*{2}.*{3}は、それを* {5}として適切に解釈します。pageinspectの
bt_metap()を修正して、オーバーフローの可能性が低い、より適切なデータ型を結果ます。SELECT DISTINCTクエリーの動作のSELECT DISTINCT...ORDER BY句は、アップグレード後に異なります。SELECT DISTINCTが指定されている場合、またはSELECTステートメントにSELECT DISTINCT …ORDER BY句が含まれている場合、ORDER BYのすべての式がSELECT DISTINCTクエリーの選択リストに存在する必要があります(バージョン9.5または9.6からAdvancedServerの上位バージョンにアップグレード処理する場合に適用可能)。ICUを使用して以前のバージョン(12、11、10、9.6、9.5)から最新のAdvancedServerバージョンに移行するには、照合順序に依存するすべてのオブジェクトを
pg_upgradeを使用して再構築する必要があります。データベースシステムは特定のソートオーダーを持つ格納オブジェクトに依存しているため、照合順序定義の変更はインデックスの破損やその他の問題を引き起こす可能性があります。通常、これは避けるべきですが、
pg_upgradeを使用してICUの新しいバージョンにリンクされたサーバーバイナリにアップグレードする場合など、正当な状況で発生する可能性があります。これが発生した場合、照合順序に依存するすべてのオブジェクトを、例REINDEXを使用して再構築する必要があります。完了したら、コマンドALTER COLLATION ... REFRESH VERSIONを使用して照合順序バージョンを更新できます。これは、現在のコレータバージョンをレコードするためのシステムカタログを更新するとワーニングが離れて行くmakeます。これは、影響を受けるすべてのオブジェクトが正しく再構築されたかどうかを実際にはチェックしないことに注意してください。