Bonjour, j’ai lu ce post : PostgreSQL 15 update - et j’ai essayé de mettre à jour vers la version 15, cependant, lors de l’exécution de la commande de reconstruction, je rencontre des erreurs que je ne connais pas, et aucune de mes recherches n’a résolu le problème. J’apprécierais toute aide que vous pourriez m’apporter.
Il se plaint que le Locale et postgres ont été initialisés à partir de la version 13 et ne sont pas compatibles avec la 15.
WARNING: Docker version 20.10.7 deprecated, recommend upgrade to 24.0.7 or newer.
x86_64 arch detected.
WARNING: containers/app.yml file is world-readable. You can secure this file by running: chmod o-rwx containers/app.yml
Ensuring launcher is up to date
Fetching origin
Launcher is up-to-date
Stopping old container
+ /usr/bin/docker stop -t 600 app
app
2.0.20250129-0720: Pulling from discourse/base
Digest: sha256:01b8516e5504c0e9bc3707773015ff4407be03a89154194ff3b5b8699291bc26
Status: Image is up to date for discourse/base:2.0.20250129-0720
docker.io/discourse/base:2.0.20250129-0720
/usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups.rb
/usr/local/bin/pups --stdin
I, [2025-02-25T12:02:47.588312 #1] INFO -- : Reading from stdin
I, [2025-02-25T12:02:47.603317 #1] INFO -- : File > /etc/service/postgres/run chmod: +x chown:
I, [2025-02-25T12:02:47.608602 #1] INFO -- : File > /etc/service/postgres/log/run chmod: +x chown:
I, [2025-02-25T12:02:47.614271 #1] INFO -- : File > /etc/runit/3.d/99-postgres chmod: +x chown:
I, [2025-02-25T12:02:47.619607 #1] INFO -- : File > /root/install_postgres chmod: +x chown:
I, [2025-02-25T12:02:47.623993 #1] INFO -- : File > /root/upgrade_postgres chmod: +x chown:
I, [2025-02-25T12:02:47.624696 #1] INFO -- : Replacing data_directory = '/var/lib/postgresql/15/main' with data_directory = '/shared/postgres_data' in /etc/postgresql/15/main/postgresql.conf
I, [2025-02-25T12:02:47.628520 #1] INFO -- : Replacing (?-mix:#?listen_addresses *=.*) with listen_addresses = '*' in /etc/postgresql/15/main/postgresql.conf
I, [2025-02-25T12:02:47.629701 #1] INFO -- : Replacing (?-mix:#?synchronous_commit *=.*) with synchronous_commit = $db_synchronous_commit in /etc/postgresql/15/main/postgresql.conf
I, [2025-02-25T12:02:47.635680 #1] INFO -- : Replacing (?-mix:#?shared_buffers *=.*) with shared_buffers = $db_shared_buffers in /etc/postgresql/15/main/postgresql.conf
I, [2025-02-25T12:02:47.636635 #1] INFO -- : Replacing (?-mix:#?work_mem *=.*) with work_mem = $db_work_mem in /etc/postgresql/15/main/postgresql.conf
I, [2025-02-25T12:02:47.637658 #1] INFO -- : Replacing (?-mix:#?default_text_search_config *=.*) with default_text_search_config = '$db_default_text_search_config' in /etc/postgresql/15/main/postgresql.conf
I, [2025-02-25T12:02:47.638584 #1] INFO -- : Replacing (?-mix:#?checkpoint_segments *=.*) with checkpoint_segments = $db_checkpoint_segments in /etc/postgresql/15/main/postgresql.conf
I, [2025-02-25T12:02:47.639215 #1] INFO -- : Replacing (?-mix:#?logging_collector *=.*) with logging_collector = $db_logging_collector in /etc/postgresql/15/main/postgresql.conf
I, [2025-02-25T12:02:47.639833 #1] INFO -- : Replacing (?-mix:#?log_min_duration_statement *=.*) with log_min_duration_statement = $db_log_min_duration_statement in /etc/postgresql/15/main/postgresql.conf
I, [2025-02-25T12:02:47.640892 #1] INFO -- : Replacing (?-mix:^#local +replication +postgres +peer$) with local replication postgres peer in /etc/postgresql/15/main/pg_hba.conf
I, [2025-02-25T12:02:47.641570 #1] INFO -- : Replacing (?-mix:^host.*all.*all.*127.*$) with host all all 0.0.0.0/0 md5 in /etc/postgresql/15/main/pg_hba.conf
I, [2025-02-25T12:02:47.642114 #1] INFO -- : Replacing (?-mix:^host.*all.*all.*::1\/128.*$) with host all all ::/0 md5 in /etc/postgresql/15/main/pg_hba.conf
I, [2025-02-25T12:02:47.642818 #1] INFO -- : > if [ -f /root/install_postgres ]; then
/root/install_postgres && rm -f /root/install_postgres
elif [ -e /shared/postgres_run/.s.PGSQL.5432 ]; then
socat /dev/null UNIX-CONNECT:/shared/postgres_run/.s.PGSQL.5432 || exit 0 && echo postgres already running stop container ; exit 1
fi
failed to set locale!
[error] character map file `UTF-8' not found: No such file or directory
failed to set locale!
[error] default character map file `ANSI_X3.4-1968' not found: No such file or directory
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = "en_US.UTF-8",
LC_ALL = "en_US.UTF-8",
LANG = "en_US.UTF-8"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
/bin/bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
popen failure: Cannot allocate memory
initdb: error: program "postgres" is needed by initdb but was not found in the same directory as "/usr/lib/postgresql/15/bin/initdb"
I, [2025-02-25T12:02:49.979779 #1] INFO -- : Generating locales (this might take a while)...
en_US.UTF-8... done
Generation complete.
Upgrading PostgreSQL from version 13 to 15
I, [2025-02-25T12:02:49.980481 #1] INFO -- : > HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/15/bin/postmaster -D /etc/postgresql/15/main
I, [2025-02-25T12:02:49.983148 #1] INFO -- : Terminating async processes
2025-02-25 12:02:50.007 UTC [51] FATAL: database files are incompatible with server
2025-02-25 12:02:50.007 UTC [51] DETAIL: The data directory was initialized by PostgreSQL version 13, which is not compatible with this version 15.10 (Debian 15.10-1.pgdg120+1).
Merci. Je pense que vous pourriez essayer d’ajouter simplement 2G ou 4G de swap. Mais le message concernant Docker obsolète et l’exécution de 18.04LTS, signifie que vous seriez dans une bien meilleure position si vous migrez vers une nouvelle instance avec une nouvelle installation propre du système d’exploitation : 24.04 de préférence. J’utilise actuellement 24.04 et 22.04.
Migrer vers une nouvelle instance propre est probablement moins d’efforts dans l’ensemble que d’essayer de mettre à niveau sur place. Cela pourrait même être moins perturbateur. Vous aurez très probablement un peu de temps d’arrêt, quoi que vous fassiez.
La première étape consiste à effectuer une sauvegarde (avec les téléchargements) et à la télécharger pour la conserver en lieu sûr. Prenez également une copie de votre fichier app.yml.
J’ai effectué une migration hier, pour des raisons similaires. De plus, j’ai pu obtenir une meilleure machine pour le même coût en passant à une offre plus récente du fournisseur d’hébergement.
J’ai suivi la recette de migration et les conseils ici
Il vous manque également un peu d’espace disque, surtout si vous ajoutez du swap. Je fais habituellement du -kx / | sort -n | tail -55
ou similaire pour voir s’il y a quelque chose de volumineux qui n’a pas besoin d’être là.
Oh, une autre approche de migration, au lieu de la sauvegarde et de la restauration, consiste à utiliser rsync. Je ne l’ai pas fait, mais voici une recette : Move a Discourse site to another VPS with rsync
L’autre problème est que votre version de Docker et votre système d’exploitation doivent être mis à niveau.
La version 24.0.7 ou plus récente de Docker nécessite une version d’Ubuntu LTS supérieure à 18. Le service à long terme de cette LTS n’est plus pris en charge.
J’ai vu quelques sites être mis à niveau avec 18.04, mais la plupart d’entre eux ne l’ont pas été.
J’ai vu des gens réussir à faire un dist-upgrade, mais son succès est incertain, et voulez-vous vraiment que des restes de votre OS vieux de 6 ans causent potentiellement des problèmes pour les 5 prochaines années de support de 24.04 ? De plus, une mise à niveau de 18.04 ne vous amène qu’à 20.04, qui n’est supporté que pendant encore environ 60 jours, vous devriez donc effectuer 3 dist-upgrades pour passer au dernier OS.
Alors, j’ai rencontré exactement la même erreur, sauf que j’ai exécuté ./launcher rebuild, je n’avais pas suivi les forums et les avertissements et j’ai en quelque sorte lancé la mise à jour à l’aveugle. Comment puis-je arrêter/annuler cette exécution ? Simplement Ctrl+C pour sortir de l’exécution ?
il a cessé de fonctionner après DETAIL : Le répertoire de données a été initialisé par PostgreSQL version 13, qui n'est pas compatible avec cette version 15.10 (Debian 15.10-1.pgdg120+1).
J’ai redémarré le serveur et cela l’a remis en marche.
Je lance d’autres mises à jour maintenant avec Docker bloqué à 20 pour une raison quelconque et d’autres dépendances. Quelle belle façon de passer le vendredi soir haha
J’ai pu mettre à jour l’OS hôte, la version de Docker, et ensuite la mise à jour de la base de données a fonctionné. Je lui ai aussi donné plus de RAM lol, ça devrait tenir encore 5 ans, non ? haha