J’ai eu ce problème aussi — et exécuter ce script a nécessité un peu d’accompagnement de la part d’ask.discourse.com, car ce n’est pas très simple pour les administrateurs système moins expérimentés !
Voici un résumé pour les autres :
Pour ceux qui rencontrent ce problème avec l’installation Docker standard, voici comment exécuter réellement le script ci-dessus.
Ouvrez un shell et lancez psql.
-
Conteneur unique :
cd /var/discourse ./launcher start app ## Nécessaire uniquement si vous avez déjà eu un échec de reconstruction ./launcher enter app su -c 'psql discourse' postgres -
Configuration à deux conteneurs :
cd /var/discourse ./launcher enter data su -c 'psql discourse' postgres
Vous devriez voir un invite discourse=#. En cas de doute, exécutez \conninfo.
Exécutez le script.
Collez tout le bloc DO $$ ... $$; de la publication de nat ci-dessus dans l’invite et appuyez sur Entrée. Une exécution réussie affiche des avis tels que :
NOTICE: Renamed resenha_rooms to voice_rooms
NOTICE: Renamed resenha_room_memberships to voice_room_memberships
...
Si, au contraire, une exception est levée (par ex. « Both Resenha and Voice tables exist. Nothing was changed. »), arrêtez-vous et collez le message ici — le script est délibérément sûr et ne modifie rien dans ce cas.
Quitter et reconstruire.
\q
exit
puis, de retour sur l’hôte :
./launcher rebuild app # conteneur unique
./launcher rebuild web_only # deux conteneurs (peut aussi se faire via le bootstrap, bien sûr)
Vous pourriez avoir besoin de deux reconstructions — la première finalise l’état de migration partiellement appliqué, la seconde s’achève proprement.