Postgresのアップグレードに関する問題

PG13へのアップグレードを拒否し、SSL証明書が期限切れになった人を手助けしようとしています。

Apt-get update fails inside container yarn repo not signed - #5 by pfaffman のせいで難しくなるかもしれませんが、pg12とpg13のテンプレートを変更したので機能するはずですが、アップグレードできず、pg12テンプレートで再構築することもできません。

アップグレードを試みたときに発生したことは次のとおりです。

                                     
既存のディレクトリ /var/lib/postgresql/12/main のパーミッションを修正中 ... ok          
サブディレクトリの作成中 ... ok
動的共有メモリの実装を選択中 ... posix
デフォルトの最大接続数を選択中 ... 100                                                                                                              
デフォルトの共有バッファを選択中 ... 128MB
デフォルトのタイムゾーンを選択中 ... Etc/UTC                              
設定ファイルの作成中 ... ok
ブートストラップスクリプトの実行中 ... ok
ブートストラップ後の初期化を実行中 ... ok
ディスクへのデータの同期中 ... ok
                                     
成功しました。これでデータベースサーバーを次のように起動できます。
                                                                                                                                                       
    pg_ctlcluster 12 main start                                                                                                                        
                                                                           
update-alternatives: warning: link group postmaster.1.g が壊れているため、alternative /usr/share/postgresql/13/man/man1/postmaster.1.gz の再インストールを強制しますz                                                                                                                                            
invoke-rc.d: 現在のランレベルを判断できません
invoke-rc.d: policy-rc.d が start の実行を拒否しました。             
Processing triggers for postgresql-common (246.pgdg110+1) ...
インストールされている myspell/hunspell パッケージから PostgreSQL 辞書をビルド中...
古い辞書ファイルを削除中:                                                                                                                    
PostgreSQL 12 データベースサーバーの停止中: main.                                                                                                          
PostgreSQL 13 データベースサーバーの停止中: main.                                                                                                          
整合性チェックの実行中               -----------------------------                                                                                                                          
クラスターバージョンのチェック中                                   ok                                                                                         
データベースユーザーがインストールユーザーであることを確認中                  ok                                                                                         
データベース接続設定のチェック中                       ok                                                                                         
プリペアドトランザクションのチェック中                          ok                                                                                         
ユーザーテーブルのシステム定義複合型のチェック中  ok                                                                                         
ユーザーテーブルの reg* データ型のチェック中                 ok                                                                                         
contrib/isn の bigint-passing mismatch のチェック中       ok                                                                                         
グローバルオブジェクトのダンプ作成中                             ok                                                                                         
データベーススキーマのダンプ作成中                                                                                                                      
  discourse                                                                                                                                            
                                                                                                                                                       
*失敗*                                                                                                                                              
                                                                                                                                                       
失敗の原因については、「pg_upgrade_dump_16566.log」の最後の数行を参照してください。
失敗、終了中
-------------------------------------------------------------------------------------
POSTGRES のアップグレードに失敗しました
                                                                                                                                                       
サポートについては、https://meta.discourse.org/t/postgresql-13-update/172563 を参照してください。
                                                                                                                                                       
それまでの間、./launcher start app でアプリを再起動できます。

アップグレードなしで再構築しようとすると、データベースの移行を試みるときに以下のようなものが発生します。

PG::InsufficientPrivilege: ERROR:  permission denied to create extension "unaccent"                                                                    

数日前の最新のバックアップとクリーンインストールにロールバックする必要があると思います。

hooks に以下を追加して、unaccent 拡張機能が存在しない場合に作成することはできませんか?

after_postgres:
    - exec: su postgres -c 'psql discourse -c "create extension if not exists unaccent;"'
「いいね!」 3

いいですね!朝チェックしてみます。ありがとう

「いいね!」 1

これでうまくいったようです!pg12とpostgresに追加する必要がありました。

PG12で再び実行できるようにはなりましたが、PG13へのアップグレードはうまくいきませんでした。バックアップを取り、postgres関連のファイルをバックアップディレクトリに移動し、再構築してバックアップを復元しました。

「いいね!」 1

このトピックは、最後の返信から30日後に自動的にクローズされました。新しい返信は許可されていません。