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ます。これは、影響を受けるすべてのオブジェクトが正しく再構築されたかどうかを実際にはチェックしないことに注意してください。