アップグレード

新しいバージョンのPGroongaが非互換の変更を含んでいない場合はPGroongaのインデックスを再作成せずにアップグレードできます。新しいバージョンが1つでも非互換の変更を含んでいればPGroongaをアップグレードする際にすべてのPGroongaのインデックスを再作成する必要があります。

以下は互換性のリストです。「✓」は「互換」、「✕」は「非互換」という意味です。

アップグレード元バージョン アップグレード先バージョン 互換? 補足
4.0.94.0.9✓
4.0.64.0.8✓
4.0.54.0.6✓
4.0.44.0.5✓
4.0.24.0.4✓
4.0.14.0.2✓
4.0.04.0.1✓
3.2.5 4.0.0 ✕ PGroonga 2.0.0以降で非推奨になったpgroongaスキーマを使っていなければ互換です。「互換性がある場合」の手順でアップグレードできます。まだpgroongaスキーマを使っている場合は、4.0.0にアップグレードする前にpgroonga.*APIからpgroonga_*APIに移行しなければなりません。
3.2.43.2.5✓
3.2.33.2.4✓
3.2.33.2.4✓
3.2.23.2.3✓
3.2.13.2.2✓
3.2.03.2.1✓
3.1.93.2.0✓
3.1.83.1.9✓
3.1.73.1.8✓
3.1.63.1.7✓
3.1.53.1.6✓
3.1.43.1.5✓
3.1.33.1.4✓
3.1.23.1.3✓
3.1.13.1.2✓
3.1.03.1.1✓
3.0.93.1.0✓
3.0.83.0.9✓
3.0.73.0.8✓
3.0.63.0.7✓
3.0.53.0.6✓
3.0.43.0.5✓
3.0.33.0.4✓
3.0.23.0.3✓
3.0.13.0.2✓
3.0.03.0.1✓
2.4.7 3.0.0 ✕ v1 APIを使っていない場合は互換です。つまり、多くのユーザーは互換なはずです。
2.4.62.4.7✓
2.4.52.4.6✓
2.4.42.4.5✓
2.4.32.4.4✓
2.4.22.4.3✓
2.4.12.4.2✓
2.4.02.4.1✓
2.3.92.4.0✓
2.3.82.3.9✓
2.3.72.3.8✓
2.3.62.3.7✓
2.3.52.3.6✓
2.3.42.3.5✓
2.3.32.3.4✓
2.3.22.3.3✓
2.3.12.3.2✓
2.3.02.3.1✓
2.2.92.3.0✓
2.2.82.2.9✓
2.2.72.2.8✓
2.2.62.2.7✓
2.2.5 2.2.6 ✓

ただし、jsonbを使ったPGroongaのインデックスがある場合は再作成する必要があります。

2.2.42.2.5✓
2.2.32.2.4✓
2.2.22.2.3✓
2.2.12.2.2✓
2.2.02.2.1✓
2.1.92.2.0✓
2.1.82.1.9✓
2.1.72.1.8✓
2.1.62.1.7✓
2.1.42.1.6✓
2.1.32.1.4✓
2.1.22.1.3✓
2.1.12.1.2✓
2.1.02.1.1✓
2.0.92.1.0✓
2.0.82.0.9✓
2.0.72.0.8✓
2.0.62.0.7✓
2.0.5 2.0.6 ✓

ただし、timestamp (without time zone)を使ったPGroongaのインデックスがある場合は再作成する必要があります。

2.0.42.0.5✓
2.0.32.0.4✓
2.0.2 2.0.3 ✓

ただし、timestamp (without time zone)を使ったPGroongaのインデックスがある場合は再作成する必要があります。

ただし、pgroonga_text_array_full_text_search_ops_v2演算子クラスを使ったPGroongaのインデックスがある場合は再作成する必要があります。

2.0.12.0.2✓
2.0.02.0.1✓
1.2.32.0.0✓
1.2.21.2.3✓
1.2.11.2.2✓
1.2.01.2.1✓
1.1.91.2.0✓
1.1.81.1.9✓
1.1.71.1.8✓
1.1.61.1.7✓
1.1.51.1.6✓
1.1.41.1.5✓
1.1.31.1.4✓
1.1.21.1.3✓
1.1.11.1.2✓
1.1.01.1.1✓
1.0.91.1.0✓
1.0.81.0.9✓
1.0.71.0.8✓
1.0.61.0.7✓
1.0.51.0.6✓
1.0.41.0.5✓
1.0.31.0.4✓
1.0.21.0.3✓
1.0.11.0.2✓
1.01.0.1✓
0.91.0✕
0.80.9✓
0.70.8✕

非互換の場合

アップグレード手順は次の通りです。

  1. すべてのPGroongaを使ったインデックスを削除します。

  2. PGroonga拡張を削除します。

  3. PGroongaのバイナリーをアップグレードします。

  4. PGroonga拡張をインストールします。

  5. すべてのPGroongaのインデックスを作り直します。

すべてのPGroongaのインデックスを削除して、PGroonga拡張も削除するSQLは次の通りです。

DROP EXTENSION pgroonga CASCADE;

PGroongaのバイナリーはパッケージでアップグレードできます。あるいは、新しいPGroongaをビルドして古いPGroongaに上書きすることでもアップグレードできます。

PGroonga拡張をインストールするSQLは次の通りです。

CREATE EXTENSION pgroonga;

PGroongaを使ってインデックスを作るにはCREATE INDEX USING pgroongaを使ってください。

互換性がある場合

アップグレード手順は次の通りです。

  1. PGroongaを使っているすべてのデータベースへの接続を切断します。

  2. PGroongaのバイナリーをアップグレードします。

  3. PGroongaを使っているデータベースに接続します。

  4. PGroonga拡張をアップグレードします。

PGroongaのバイナリーはパッケージでアップグレードできます。あるいは、新しいPGroongaをビルドして古いPGroongaに上書きすることでもアップグレードできます。

PGroongaをアップグレードするSQLは次の通りです。

ALTER EXTENSION pgroonga UPDATE;

もしpgroonga_databaseモジュールを使っているなら、次のSQLを実行してpgroonga_databaseモジュールをアップグレードする必要があります。

ALTER EXTENSION pgroonga_database UPDATE;

参考