Échec de la mise à niveau de 2.7.0.beta1 à 2.7.0.beta3

J’ai utilisé la mise à jour du navigateur en un clic pour tenter de passer de la version 2.7.0.beta1 à la 2.7.0.beta3.

Elle a d’abord mis à jour Docker, apparemment avec succès. Ensuite, comme indiqué, j’ai exécuté les commandes suivantes sur le serveur :

    cd /var/discourse
    git pull
    ./launcher rebuild app

La commande s’est terminée en indiquant qu’une nouvelle reconstruction était nécessaire. Je l’ai donc relancée, et le processus a avancé assez loin avant d’afficher le message suivant :

I, [2021-02-01T04:03:23.848858 #1]  INFO -- : > HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/13/bin/postmaster -D /etc/postgresql/13/main
I, [2021-02-01T04:03:23.850125 #1]  INFO -- : > sleep 5
I, [2021-02-01T04:03:28.854186 #1]  INFO -- :
I, [2021-02-01T04:03:28.854378 #1]  INFO -- : > su postgres -c 'createdb discourse' || true
createdb: erreur : impossible de se connecter à la base de données template1 : impossible de se connecter au serveur : Aucun fichier ou répertoire de ce type
        Le serveur est-il en cours d'exécution localement et accepte-t-il
        les connexions sur le socket de domaine Unix "/var/run/postgresql/.s.PGSQL.5432" ?
I, [2021-02-01T04:03:28.940422 #1]  INFO -- :
I, [2021-02-01T04:03:28.940926 #1]  INFO -- : > su postgres -c 'psql discourse -c "create user discourse;"' || true
psql: erreur : impossible de se connecter au serveur : Aucun fichier ou répertoire de ce type
        Le serveur est-il en cours d'exécution localement et accepte-t-il
        les connexions sur le socket de domaine Unix "/var/run/postgresql/.s.PGSQL.5432" ?
I, [2021-02-01T04:03:29.005802 #1]  INFO -- :
I, [2021-02-01T04:03:29.006192 #1]  INFO -- : > su postgres -c 'psql discourse -c "grant all privileges on database discourse to discourse;"' || true
psql: erreur : impossible de se connecter au serveur : Aucun fichier ou répertoire de ce type
        Le serveur est-il en cours d'exécution localement et accepte-t-il
        les connexions sur le socket de domaine Unix "/var/run/postgresql/.s.PGSQL.5432" ?
I, [2021-02-01T04:03:29.055155 #1]  INFO -- :
I, [2021-02-01T04:03:29.055530 #1]  INFO -- : > su postgres -c 'psql discourse -c "alter schema public owner to discourse;"'
psql: erreur : impossible de se connecter au serveur : Aucun fichier ou répertoire de ce type
        Le serveur est-il en cours d'exécution localement et accepte-t-il
        les connexions sur le socket de domaine Unix "/var/run/postgresql/.s.PGSQL.5432" ?
I, [2021-02-01T04:03:29.102737 #1]  INFO -- :
I, [2021-02-01T04:03:29.103136 #1]  INFO -- : Arrêt des processus asynchrones
I, [2021-02-01T04:03:29.103280 #1]  INFO -- : Envoi de INT à HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/13/bin/postmaster -D /etc/postgresql/13/main pid: 52


ÉCHEC
--------------------
Pups::ExecError : la commande su postgres -c 'psql discourse -c "alter schema public owner to discourse;"' a échoué avec le code de retour #<Process::Status: pid 78 exit 2>
Emplacement de l'échec : /pups/lib/pups/exec_command.rb:112:in `spawn'
échec de l'exécution avec les paramètres "su postgres -c 'psql $db_name -c \"alter schema public owner to $db_user;\"'"
74718f22e5eb9e1ceb21ac2a2fe613d13aee282a353cf60b91258ba2b2323397
** ÉCHEC DU BOOTSTRAP ** veuillez remonter et rechercher les messages d'erreur précédents, il peut y en avoir plus d'un.
./discourse-doctor peut aider à diagnostiquer le problème.

Les notes de version mettaient en garde concernant PostgreSQL et l’espace disque ; peut-être que l’échec est dû à cette raison ? Lorsque j’exécute discourse-doctor, la sortie inclut :

---------- Espace disque du système d'exploitation ----------
Système de fichiers                 Taille  Utilisé  Disponible  %Utilisé  Monté sur
/dev/disk/by-label/DOROOT           30G     20G      8.5G        70%       /

Que dois-je faire maintenant ?

Pouvez-vous coller plus de lignes de la sortie de reconstruction ? Nous avons besoin de quelques lignes antérieures à celle-ci pour pouvoir diagnostiquer le problème.

Il semble que le coupable soit :

    I, [2021-02-01T22:13:56.638190 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate'
2021-02-01 22:14:05.011 UTC [4123] discourse@discourse ERROR:  duplicate key value violates unique constraint "index_users_on_username"
2021-02-01 22:14:05.011 UTC [4123] discourse@discourse DETAIL:  Key (username)=(Pxxx_Gxxxxxxxx) already exists.
2021-02-01 22:14:05.011 UTC [4123] discourse@discourse STATEMENT:  UPDATE users
        SET locale = 'en'
        WHERE locale = 'en_US'

rake aborted!
StandardError: An error has occurred, this and all later migrations canceled:

PG::UniqueViolation: ERROR:  duplicate key value violates unique constraint "index_users_on_username"
DETAIL:  Key (username)=(Pxxx_Gxxxxxxxx) already exists.

Si c’est le cas, comment suggéreriez-vous de résoudre le problème ? La sortie complète est jointe.

failed_discourse_upgrade_2021_01_31.txt (90.4 KB)

1 « J'aime »

Quelques sujets récents traitent de la résolution des doublons. Par exemple :

2 « J'aime »

Merci. J’ai du mal à faire fonctionner psql.

J’ai redémarré le conteneur :

./launcher start app

Ensuite, j’ai exécuté :

./launcher enter app

puis :

su postgres -c 'psql discourse'

Mais le résultat était :

psql : erreur : impossible de se connecter au serveur : impossible de se connecter au serveur : Aucun fichier ou répertoire de ce type
Le serveur est-il en cours d’exécution localement et accepte-t-il
les connexions sur le socket de domaine Unix “/var/run/postgresql/.s.PGSQL.5432” ?

Essayez sudo -u postgres psql discourse

Essayez sudo -u postgres psql discourse

Même message d’erreur, malheureusement.

1 « J'aime »

Est-ce que cela s’est déroulé correctement lors de la première itération de la reconstruction du lanceur ?

Si c’est le cas, votre base de données a déjà été mise à niveau vers PostgreSQL 13, tandis que vos binaires PostgreSQL dans l’ancienne image de l’application attendent toujours une version de base de données 10 ou 12, selon celle à partir de laquelle vous effectuez la mise à niveau.

cd /var/discourse/shared/standalone
ls -alh

Avez-vous à la fois les répertoires postgres_data et postgres_data_old ?

Assurez-vous que l’application est arrêtée, puis déplacez ou renommez (ne supprimez pas pour l’instant, juste par sécurité) le répertoire postgres_data, puis

mv postgres_data_old postgres_data

Et essayez à nouveau launcher start app.

J’espère que cela vous aidera !

Gunnar

2 « J'aime »

J’ai suivi ces étapes et renommé avec succès l’utilisateur en double. Cependant, j’ai ensuite rencontré ce problème en tentant de réindexer.

@sam avait suggéré dans ce fil : « Oui, supprimez les lignes en double », mais je ne sais pas ce que cela signifie dans le contexte des avertissements et des messages d’erreur que je reçois lors de la réindexation, qui a maintenant pris de l’ampleur :

REINDEX SCHEMA CONCURRENTLY public;
WARNING:  cannot reindex invalid index "public.index_incoming_referers_on_path_and_incoming_domain_id_ccnew" concurrently, skipping
WARNING:  cannot reindex invalid index "public.incoming_referers_pkey_ccnew1" concurrently, skipping
WARNING:  cannot reindex invalid index "public.index_incoming_referers_on_path_and_incoming_domain_id_ccnew1" concurrently, skipping
WARNING:  cannot reindex invalid index "public.index_incoming_referers_on_path_and_incoming_domain_id_cc_ccnew" concurrently, skipping
WARNING:  cannot reindex invalid index "public.index_incoming_referers_on_path_and_incoming_domain_id_c_ccnew1" concurrently, skipping
WARNING:  cannot reindex invalid index "public.incoming_referers_pkey_ccnew2" concurrently, skipping
WARNING:  cannot reindex invalid index "public.index_incoming_referers_on_path_and_incoming_domain_id_ccnew2" concurrently, skipping
WARNING:  cannot reindex invalid index "public.incoming_referers_pkey_ccnew_ccnew" concurrently, skipping
WARNING:  cannot reindex invalid index "pg_toast.pg_toast_19250_index_ccnew1" concurrently, skipping
WARNING:  cannot reindex invalid index "pg_toast.pg_toast_19250_index_ccnew2" concurrently, skipping
WARNING:  cannot reindex invalid index "pg_toast.pg_toast_19250_index_ccnew_ccnew" concurrently, skipping
ERROR:  could not create unique index "index_incoming_referers_on_path_and_incoming_domain_id_ccnew3"
DETAIL:  Key (path, incoming_domain_id)=(/votes/, 1165) is duplicated.
1 « J'aime »

Ce sont des index temporaires créés pendant le processus de réindexation. Chaque fois que le processus plantait à cause de doublons, il laissait au moins un index temporaire derrière lui. Vous pouvez les identifier grâce à leur nom, qui se termine par ccnew, ccnew1, ccnew2, etc.

Vous pouvez les supprimer en accédant à Psql et en exécutant la commande DROP INDEX.

sudo ./launcher enter app
su postgres -c 'psql discourse'

DROP INDEX '<nom_de_l_index>_ccnew';
DROP INDEX '<nom_de_l_index>_ccnew1';

Et ainsi de suite. Assurez-vous d’avoir une sauvegarde de la base de données au préalable, vérifiez que le réindexage n’est pas en cours d’exécution, et assurez-vous de ne supprimer que les index _ccnew.

Plus d’informations dans ce post :

3 « J'aime »

Thanks again, Gunnar. I was able to drop some of the ccnew indexes but not all:

discourse=# DROP INDEX public.index_incoming_referers_on_path_and_incoming_domain_id_ccnew;
DROP INDEX
discourse=# DROP INDEX public.incoming_referers_pkey_ccnew1;
DROP INDEX
discourse=# DROP INDEX public.index_incoming_referers_on_path_and_incoming_domain_id_ccnew1;
DROP INDEX
discourse=# DROP INDEX public.index_incoming_referers_on_path_and_incoming_domain_id_cc_ccnew;
ERROR:  index "index_incoming_referers_on_path_and_incoming_domain_id_cc_ccnew" does not exist
discourse=# DROP INDEX public.index_incoming_referers_on_path_and_incoming_domain_id_c_ccnew1;
ERROR:  index "index_incoming_referers_on_path_and_incoming_domain_id_c_ccnew1" does not exist
discourse=# DROP INDEX public.incoming_referers_pkey_ccnew2;
DROP INDEX
discourse=# DROP INDEX public.incoming_referers_pkey_ccnew_ccnew;
ERROR:  index "incoming_referers_pkey_ccnew_ccnew" does not exist
discourse=# DROP INDEX pg_toast.pg_toast_19250_index_ccnew1;
ERROR:  permission denied: "pg_toast_19250_index_ccnew1" is a system catalog
discourse=# DROP INDEX pg_toast.pg_toast_19250_index_ccnew2;
ERROR:  permission denied: "pg_toast_19250_index_ccnew2" is a system catalog
discourse=# DROP INDEX pg_toast.pg_toast_19250_index_ccnew_ccnew;
ERROR:  permission denied: "pg_toast_19250_index_ccnew_ccnew" is a system catalog

In any case, I seem to have successfully reindexed afterwards:

discourse=# REINDEX SCHEMA CONCURRENTLY public;
REINDEX

So then I went to complete the upgrade, but it failed:

root@forum:/var/discourse# ./launcher rebuild app
Ensuring launcher is up to date
Fetching origin
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Total 3 (delta 2), reused 3 (delta 2), pack-reused 0
Unpacking objects: 100% (3/3), done.
From https://github.com/discourse/discourse_docker
 * [new branch]      fix-prune-time -> origin/fix-prune-time
Launcher is up-to-date
Stopping old container
+ /usr/bin/docker stop -t 60 app
app
cd /pups && git pull && /pups/bin/pups --stdin
Already up to date.
I, [2021-02-15T00:34:30.967636 #1]  INFO -- : Loading --stdin
I, [2021-02-15T00:34:30.973572 #1]  INFO -- : > locale-gen $LANG && update-locale
I, [2021-02-15T00:34:31.024271 #1]  INFO -- : Generating locales (this might take a while)...
Generation complete.

I, [2021-02-15T00:34:31.024803 #1]  INFO -- : > mkdir -p /shared/postgres_run
I, [2021-02-15T00:34:31.029795 #1]  INFO -- :
I, [2021-02-15T00:34:31.030826 #1]  INFO -- : > chown postgres:postgres /shared/postgres_run
I, [2021-02-15T00:34:31.033498 #1]  INFO -- :
I, [2021-02-15T00:34:31.033875 #1]  INFO -- : > chmod 775 /shared/postgres_run
I, [2021-02-15T00:34:31.036104 #1]  INFO -- :
I, [2021-02-15T00:34:31.036435 #1]  INFO -- : > rm -fr /var/run/postgresql
I, [2021-02-15T00:34:31.038583 #1]  INFO -- :
I, [2021-02-15T00:34:31.038915 #1]  INFO -- : > ln -s /shared/postgres_run /var/run/postgresql
I, [2021-02-15T00:34:31.041198 #1]  INFO -- :
I, [2021-02-15T00:34:31.041511 #1]  INFO -- : > socat /dev/null UNIX-CONNECT:/shared/postgres_run/.s.PGSQL.5432 || exit 0 && echo postgres already running stop container ; exit 1
2021/02/15 00:34:31 socat[27] E connect(6, AF=1 "/shared/postgres_run/.s.PGSQL.5432", 36): No such file or directory
I, [2021-02-15T00:34:31.055279 #1]  INFO -- :
I, [2021-02-15T00:34:31.055620 #1]  INFO -- : > rm -fr /shared/postgres_run/.s*
I, [2021-02-15T00:34:31.058156 #1]  INFO -- :
I, [2021-02-15T00:34:31.058442 #1]  INFO -- : > rm -fr /shared/postgres_run/*.pid
I, [2021-02-15T00:34:31.060461 #1]  INFO -- :
I, [2021-02-15T00:34:31.060758 #1]  INFO -- : > mkdir -p /shared/postgres_run/13-main.pg_stat_tmp
I, [2021-02-15T00:34:31.062949 #1]  INFO -- :
I, [2021-02-15T00:34:31.063384 #1]  INFO -- : > chown postgres:postgres /shared/postgres_run/13-main.pg_stat_tmp
I, [2021-02-15T00:34:31.065117 #1]  INFO -- :
I, [2021-02-15T00:34:31.069700 #1]  INFO -- : File > /etc/service/postgres/run  chmod: +x  chown:
I, [2021-02-15T00:34:31.073080 #1]  INFO -- : File > /etc/service/postgres/log/run  chmod: +x  chown:
I, [2021-02-15T00:34:31.076629 #1]  INFO -- : File > /etc/runit/3.d/99-postgres  chmod: +x  chown:
I, [2021-02-15T00:34:31.079978 #1]  INFO -- : File > /root/upgrade_postgres  chmod: +x  chown:
I, [2021-02-15T00:34:31.080365 #1]  INFO -- : > chown -R root /var/lib/postgresql/13/main
I, [2021-02-15T00:34:31.456272 #1]  INFO -- :
I, [2021-02-15T00:34:31.456523 #1]  INFO -- : > [ ! -e /shared/postgres_data ] && install -d -m 0755 -o postgres -g postgres /shared/postgres_data && sudo -E -u postgres /usr/lib/postgresql/13/bin/initdb -D /shared/postgres_data || exit 0
I, [2021-02-15T00:34:31.458416 #1]  INFO -- :
I, [2021-02-15T00:34:31.458635 #1]  INFO -- : > chown -R postgres:postgres /shared/postgres_data
I, [2021-02-15T00:34:31.489118 #1]  INFO -- :
I, [2021-02-15T00:34:31.489681 #1]  INFO -- : > chown -R postgres:postgres /var/run/postgresql
I, [2021-02-15T00:34:31.491900 #1]  INFO -- :
I, [2021-02-15T00:34:31.492294 #1]  INFO -- : > /root/upgrade_postgres
initdb: warning: enabling "trust" authentication for local connections
You can change this by editing pg_hba.conf or using the option -A, or
--auth-local and --auth-host, the next time you run initdb.
debconf: delaying package configuration, since apt-utils is not installed
I, [2021-02-15T00:34:44.948743 #1]  INFO -- : Upgrading PostgreSQL from version 12 to 13
The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.

The database cluster will be initialized with locale "en_US.UTF-8".
The default database encoding has accordingly been set to "UTF8".
The default text search configuration will be set to "english".

Data page checksums are disabled.

fixing permissions on existing directory /shared/postgres_data_new ... ok
creating subdirectories ... ok
selecting dynamic shared memory implementation ... posix
selecting default max_connections ... 100
selecting default shared_buffers ... 128MB
selecting default time zone ... Etc/UTC
creating configuration files ... ok
running bootstrap script ... ok
performing post-bootstrap initialization ... ok
syncing data to disk ... ok


Success. You can now start the database server using:

    /usr/lib/postgresql/13/bin/pg_ctl -D /shared/postgres_data_new -l logfile start

Get:1 http://security.debian.org/debian-security buster/updates InRelease [65.4 kB]
Get:2 http://deb.debian.org/debian buster InRelease [122 kB]
Get:3 http://deb.debian.org/debian buster-updates InRelease [51.9 kB]
Get:4 http://apt.postgresql.org/pub/repos/apt buster-pgdg InRelease [104 kB]
Get:5 http://security.debian.org/debian-security buster/updates/main amd64 Packages [267 kB]
Get:6 http://deb.debian.org/debian buster/main amd64 Packages [7,907 kB]
Get:7 http://deb.debian.org/debian buster-updates/main amd64 Packages.diff/Index [5,656 B]
Get:8 http://deb.debian.org/debian buster-updates/main amd64 Packages 2020-12-24-1401.30.pdiff [286 B]
Get:9 http://deb.debian.org/debian buster-updates/main amd64 Packages 2021-01-29-2000.47.pdiff [408 B]
Get:10 http://deb.debian.org/debian buster-updates/main amd64 Packages 2021-02-07-1359.56.pdiff [2,302 B]
Get:10 http://deb.debian.org/debian buster-updates/main amd64 Packages 2021-02-07-1359.56.pdiff [2,302 B]
Get:11 https://deb.nodesource.com/node_10.x buster InRelease [4,584 B]
Get:12 http://apt.postgresql.org/pub/repos/apt buster-pgdg/main amd64 Packages [216 kB]
Get:13 https://deb.nodesource.com/node_10.x buster/main amd64 Packages [768 B]
Fetched 8,746 kB in 2s (4,421 kB/s)
Reading package lists...
Reading package lists...
Building dependency tree...
Reading state information...
The following additional packages will be installed:
  postgresql-client-12
Suggested packages:
  postgresql-doc-12
The following NEW packages will be installed:
  postgresql-12 postgresql-client-12
0 upgraded, 2 newly installed, 0 to remove and 28 not upgraded.
Need to get 16.1 MB of archives.
After this operation, 54.1 MB of additional disk space will be used.
Get:1 http://apt.postgresql.org/pub/repos/apt buster-pgdg/main amd64 postgresql-client-12 amd64 12.6-1.pgdg100+1 [1,424 kB]
Get:2 http://apt.postgresql.org/pub/repos/apt buster-pgdg/main amd64 postgresql-12 amd64 12.6-1.pgdg100+1 [14.7 MB]
Fetched 16.1 MB in 1s (12.8 MB/s)
Selecting previously unselected package postgresql-client-12.
(Reading database ... 43899 files and directories currently installed.)
Preparing to unpack .../postgresql-client-12_12.6-1.pgdg100+1_amd64.deb ...
Unpacking postgresql-client-12 (12.6-1.pgdg100+1) ...
Selecting previously unselected package postgresql-12.
Preparing to unpack .../postgresql-12_12.6-1.pgdg100+1_amd64.deb ...
Unpacking postgresql-12 (12.6-1.pgdg100+1) ...
Setting up postgresql-client-12 (12.6-1.pgdg100+1) ...
update-alternatives: warning: forcing reinstallation of alternative /usr/share/postgresql/13/man/man1/psql.1.gz because link group psql.1.gz is broken
Setting up postgresql-12 (12.6-1.pgdg100+1) ...
Creating new PostgreSQL cluster 12/main ...
/usr/lib/postgresql/12/bin/initdb -D /var/lib/postgresql/12/main --auth-local peer --auth-host md5
The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.

The database cluster will be initialized with locale "C.UTF-8".
The default database encoding has accordingly been set to "UTF8".
The default text search configuration will be set to "english".

Data page checksums are disabled.

fixing permissions on existing directory /var/lib/postgresql/12/main ... ok
creating subdirectories ... ok
selecting dynamic shared memory implementation ... posix
selecting default max_connections ... 100
selecting default shared_buffers ... 128MB
selecting default time zone ... Etc/UTC
creating configuration files ... ok
running bootstrap script ... ok
performing post-bootstrap initialization ... ok
syncing data to disk ... ok

Success. You can now start the database server using:

    pg_ctlcluster 12 main start

Ver Cluster Port Status Owner    Data directory              Log file
12  main    5433 down   postgres /var/lib/postgresql/12/main /var/log/postgresql/postgresql-12-main.log
update-alternatives: warning: forcing reinstallation of alternative /usr/share/postgresql/13/man/man1/postmaster.1.gz because link group postmaster.1.gz is broken
invoke-rc.d: could not determine current runlevel
invoke-rc.d: policy-rc.d denied execution of start.
Processing triggers for postgresql-common (223.pgdg100+1) ...
Building PostgreSQL dictionaries from installed myspell/hunspell packages...
Removing obsolete dictionary files:
Stopping PostgreSQL 12 database server: main.
Stopping PostgreSQL 13 database server: main.
Performing Consistency Checks
-----------------------------
Checking cluster versions                                   ok
Checking database user is the install user                  ok
Checking database connection settings                       ok
Checking for prepared transactions                          ok
Checking for reg* data types in user tables                 ok
Checking for contrib/isn with bigint-passing mismatch       ok
Creating dump of global objects                             ok
Creating dump of database schemas
  discourse

*failure*

Consult the last few lines of "pg_upgrade_dump_16566.log" for
the probable cause of the failure.
Failure, exiting
-------------------------------------------------------------------------------------
UPGRADE OF POSTGRES FAILED

Please visit https://meta.discourse.org/t/postgresql-13-update/172563 for support.

You can run ./launcher start app to restart your app in the meanwhile




FAILED
--------------------
Pups::ExecError: /root/upgrade_postgres failed with return #<Process::Status: pid 46 exit 1>
Location of failure: /pups/lib/pups/exec_command.rb:112:in `spawn'
exec failed with the params "/root/upgrade_postgres"
1b91e47c88940d6c697c346fa8db3d4ab39bbc83f1340dc6f734ca0f9abe6eeb
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.
./discourse-doctor may help diagnose the problem.

I don’t know why the rebuild failed, except that it appears to have something to do with Postgres. I don’t know where the log file “pg_upgrade_dump_16566.log” is supposed to be.

Ideas?

Je pense que cela signifie que la mise à niveau n’a pas fonctionné. J’ai eu un problème similaire hier.

Ce que j’ai fait, je crois, c’est déplacer les données de sauvegarde vers postgres_data, puis basculer vers le modèle pg10 (probablement 12 pour vous ?), reconstruire, puis remettre le modèle d’origine et reconstruire deux fois de plus pour la mise à niveau.

C’est une vue d’ensemble, mais c’est tout ce que je peux faire sur mon téléphone. La mise à jour PostgreSQL 13 devrait contenir tout ce dont vous avez besoin.

1 « J'aime »

Ce que j’ai fait, je pense, c’est déplacer les données de sauvegarde vers postgres_data, puis basculer vers le modèle pg10 (probablement 12 pour vous ?), reconstruire, puis revenir au modèle précédent et reconstruire deux fois de plus pour la mise à niveau.

Donc, laissez-moi vérifier si j’ai bien compris. Je dois :

  1. Renommer postgres_data en quelque chose d’autre, puis renommer la sauvegarde que j’ai créée en postgres_data.
  2. Renommer postgres.template.yml en quelque chose d’autre, puis renommer postgres.12.template.yml en postgres.template.yml.
  3. Exécuter ./launcher rebuild app.
  4. Restaurer à la fois postgres_data et postgres.template.yml.
  5. Exécuter ./launcher rebuild app.
  6. Exécuter ./launcher rebuild app.

Est-ce correct ?

Salut Roger. Cela devrait ressembler beaucoup à cela, mais je ne connais pas exactement ta situation, donc je ne peux pas te le promettre.

Ah, attends.

Non. Dans ton app.yml, tu ferais référence au modèle PostgreSQL 12 plutôt qu’au modèle PostgreSQL standard. Tu modifies ton app.yml, tu ne renommes aucun fichier. C’est assez bien expliqué dans le guide de mise à niveau, je pense.

Pour le site que je viens de réparer, le répertoire postgres_data était vide, puis (je crois) mon script a exécuté un docker prune, ce qui a supprimé le conteneur qui, je pense, aurait fonctionné si je l’avais simplement redémarré.

Si tu veux juste que cela soit corrigé et que tu as un budget, consulte Redirecting….

1 « J'aime »