Comment mettre à niveau un site Discourse très ancien ?

1. Quelle est la façon la plus simple de remettre le système en marche ?
2. Si j’avais des sauvegardes S3, cela couvrait-il toutes les données pertinentes, y compris les images, les métadonnées, etc. ?

Bien que j’aie trouvé cet article, il n’a pas été mis à jour depuis 5 ans :

Avant de continuer à perdre du temps aujourd’hui, j’aimerais savoir si quelqu’un peut fournir quelques conseils utiles. Peut-être pourrais-je offrir une bière virtuelle à quelqu’un, donner des conseils gratuits sur GitHub - shakacode/react_on_rails: Integration of React + Webpack + Rails including server-side rendering of React, enabling a better developer experience and faster client performance. · GitHub ou autre chose ?

Est-ce que quelqu’un a du temps pour travailler en binôme avec moi sur ce sujet, et je documenterai les efforts ?

Voici ce que je sais :

  1. Mon répertoire pour Discourse est /var/docker et non /var/discourse.
  2. J’ai une sauvegarde récente sur S3.
  3. J’ai essayé [Changer “templates/postgres.template.yml” EN “templates/postgres.9.5.template.yml”](http://Change “templates/postgres.template.yml” TO “templates/postgres.9.5.template.yml”)
  4. Ensuite, la base de données n’est pas compatible :
2020-04-04 20:53:42.164 UTC [1601] FATAL:  database files are incompatible with server
2020-04-04 20:53:42.164 UTC [1601] DETAIL:  The data directory was initialized by PostgreSQL version 9.3, which is not compatible with this version 9.5.21.

Journaux pertinents

Welcome to Ubuntu 16.04.3 LTS (GNU/Linux 4.4.0-148-generic x86_64)
  System load:  0.08               Processes:              137
  Usage of /:   69.3% of 29.40GB   Users logged in:        0
  Memory usage: 77%                IP address for eth0:    192.241.224.165
  Swap usage:   24%                IP address for docker0: 172.17.0.1
187 packages can be updated.
19 updates are security updates.

*** System restart required ***

root@forum:~# cd /var/docker/
root@forum:/var/docker# git pull

Updating 67f34b8..b0c92ba

I, [2020-04-04T20:34:13.023086 #1]  INFO -- : > apt-get update && apt-get install -y postgresql-9.3 postgresql-client-9.3 postgresql-contrib-9.3
E: Unable to locate package postgresql-client-9.3
E: Couldn't find any package by glob 'postgresql-client-9.3'
E: Couldn't find any package by regex 'postgresql-client-9.3'
E: Unable to locate package postgresql-contrib-9.3
E: Couldn't find any package by glob 'postgresql-contrib-9.3'
E: Couldn't find any package by regex 'postgresql-contrib-9.3'
I, [2020-04-04T20:34:17.590352 #1]  INFO -- : Hit:1 http://deb.debian.org/debian buster InRelease

FAILED
--------------------
Pups::ExecError: apt-get update && apt-get install -y postgresql-9.3 postgresql-client-9.3 postgresql-contrib-9.3 failed with return #<Process::Status: pid 18 exit 100>
Location of failure: /pups/lib/pups/exec_command.rb:112:in `spawn'
exec failed with the params "apt-get update && apt-get install -y postgresql-9.3 postgresql-client-9.3 postgresql-contrib-9.3"
159a5389071c2e398c9f426ae0853f11f662503190b648f0390fdb14dd9a057e

WARNING! This will remove all stopped containers.
Are you sure you want to continue? [y/N] y
Deleted Containers:
5fd4cef4498a5ad12efb2f27373e3950e83b106d8ab7095177862511b10a0366

Total reclaimed space: 1.494GB
WARNING! This will remove all images without at least one container associated to them.
Are you sure you want to continue? [y/N] y
Deleted Images:
untagged: local_discourse/app:latest

Total reclaimed space: 9.848GB
root@forum:/var/docker# df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            477M     0  477M   0% /dev
tmpfs           100M   11M   89M  11% /run
/dev/vda1        30G  9.6G   19G  35% /
tmpfs           497M     0  497M   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           497M     0  497M   0% /sys/fs/cgroup
cgmfs           100K     0  100K   0% /run/cgmanager/fs
tmpfs           100M     0  100M   0% /run/user/0

LOG:  skipping missing configuration file "/shared/postgres_data/postgresql.auto.conf"
2020-04-04 20:53:42.164 UTC [1601] FATAL:  database files are incompatible with server
2020-04-04 20:53:42.164 UTC [1601] DETAIL:  The data directory was initialized by PostgreSQL version 9.3, which is not compatible with this version 9.5.21

FAILED
--------------------
Pups::ExecError: su postgres -c 'psql discourse -c "alter schema public owner to discourse;"' failed with return #<Process::Status: pid 1627 exit 2>
Location of failure: /pups/lib/pups/exec_command.rb:112:in `spawn'
exec failed with the params "su postgres -c 'psql $db_name -c \"alter schema public owner to $db_user;\"'"
e5ea7eeecd58ef02a19254a299700fe2146b447c6eda637a4fe64df373348953

Salut Justin ! Ravi de te revoir. Par courtoisie, puisque tu utilises Discourse depuis très longtemps, je serais ravi de payer @pfaffman pour t’aider ici. :hugs:

Dis-lui simplement de me contacter pour le paiement.

Salut, @justin_gordon. Le site est-il en ligne maintenant ? Sinon, peux-tu me fournir les informations S3 ?

Tu peux me les transmettre de manière raisonnablement sécurisée via Redirecting…

J’espère que ce n’est pas une urgence et que commencer lundi te convient ? Si c’est urgent, précise-le dans ton message et je ferai de mon mieux pour commencer plus tôt.

Tu peux aussi m’envoyer un MP ici avec ton adresse e-mail.

OMG @codinghorror, tu m’as fait ma journée !

@pfaffman, oui, pas d’urgence. Je procédais à la mise à niveau pour répondre à une demande : « Comment as-tu rendu ton en-tête si joli sur talksurf.com ».

Une fois que talksurf.com sera de nouveau opérationnel, je m’assurerai d’ajouter quelques notes ici qui seront utiles pour les autres.

Justin, je me sens maintenant coupable :slightly_frowning_face:
À trois jours d’utiliser Discourse, je cause déjà le chaos !

Bonjour @Paul-Reed et @codinghorror,

@pfaffman m’a remis sur pied… il a fait un travail incroyable ! Le site est tout neuf et étincelant, et Discourse est formidable puisque tout ce dont on avait besoin était dans les sauvegardes !

Quelle technologie incroyable de la part de Discourse !

@pfaffman m’a fourni les informations suivantes :

  1. Une installation en deux conteneurs décrite ici.
  2. La restauration à partir d’une sauvegarde sur une installation fraîche semblait être la voie de moindre résistance pour une installation très ancienne.
  3. Il n’y a vraiment qu’un seul fichier utile en dehors des sauvegardes, à savoir le fichier /var/discourse/containers/app.yml. Et je devrais avoir des sauvegardes quotidiennes, et non tous les 7 jours !

Une leçon clé que je connaissais et que j’aurais dû me rappeler :

Juste parce que vous pensez que quelque chose prendra 10 minutes, ce n’est pas toujours le cas. Je me suis lancé dans cette mise à jour simplement parce que je voulais m’assurer de donner à @Paul-Reed de bons conseils sur l’en-tête. Oups ! Et ce n’est pas seulement que je l’ai appris, mais nous l’oublions souvent. Ma spécialité est de faire en sorte que les sites utilisant React et Ruby on Rails fonctionnent mieux grâce à mon cabinet de conseil https://www.shakacode.com et mon projet open source GitHub - shakacode/react_on_rails: Integration of React + Webpack + Rails including server-side rendering of React, enabling a better developer experience and faster client performance. · GitHub.

La DevOps de type Docker est quelque chose que je peux faire, mais cela prend beaucoup de temps par rapport à ce que j’essaie d’accomplir !

Donc, à cause de tout cela, je réfléchis à demander à @pfaffman de m’aider avec certaines mises à jour de ma page d’accueil pour https://forum.shakacode.com/.

Donc un ENORME merci à @codinghorror et @pfaffman pour toute l’aide apportée !


Et si cela vous intéresse, voici la correction pour l’en-tête personnalisé qui a déclenché cette mise à jour de mon ancien site Discourse.

En-tête personnalisé

Tout d’abord, plutôt que de faire du yak shaving, je recommande de contacter @pfaffman sur https://support.literatecomputing.com/. En fait, je demanderai à @pfaffman de m’aider si je veux créer quelque chose de mieux dans ce domaine !

Mais, pour les bricoleurs, je pense que toutes les parties utiles sont ici :

À ma connaissance, tout le reste est vide.

CSS

#top-navbar-container {
    background: black;
    height: 25px;
}

#top-navbar-links .spacer {
    display: inline-block;
    margin-left: 12px;
    margin-right: 12px;
}


#top-navbar-links, #top-navbar-links a:visited, #top-navbar-links a {
    color: white;
}

header.d-header {
    background: black;
    background-image: url(/uploads/default/63/873a733a013f8208.jpg);
    padding-top: 0;
    box-shadow: none;
    top: 25px;
    height: 63px;
}

.ember-view > #main-outlet {
    padding-top: 97px;
}

header > .container {
    background-image: url(/uploads/default/63/873a733a013f8208.jpg);
    max-width: 1200px;
    padding-right: 50px;
}

header.d-header > .container > .contents {
    margin: 0;
}

header.d-header #site-logo, header.d-header .logo-small {
    max-height: 53px;
}

body #main .extra-info > a.star {
    color: #A5ACDD;
}

header .extra-info-wrapper h1 {
    margin-top: 18px;    
}

@media screen and (min-width: 1140px)  {
    header .extra-info-wrapper {
        max-width: 780px;
    }
}

@media screen and (min-width: 967px) and (max-width: 1139px)  {
    header .extra-info-wrapper {
        max-width: 647px;
    }
}

#user-notifications, #search-button, #site-map  {
    color: #AAA; 
}

@media screen and (max-width: 966px) {
    .extra-info-wrapper {
        max-width: 620px;
    }
}

header .current-username .username > a {
    color: white;
}

header.d-header .icons .icon:hover {
    background-color: #000000;
}

EN-TÊTE

<div id="top-navbar-container" class="d-header">
<div id="top-navbar" class="wrap">
<span id="top-navbar-links" style="height:20px;">
  <a href="http://forum.talksurf.com">Accueil</a><span class="spacer"> | </span>
  <a href="http://forum.talksurf.com/category/surfing/doug-silva">Doug Silva</a><span class="spacer"> | </span>
  <a href="http://forum.talksurf.com/category/surfing">Surf</a><span class="spacer"> | </span>
  <a href="http://forum.talksurf.com/category/kitesurfing">Kitesurf</a><span class="spacer"> | </span>
  <a href="http://forum.talksurf.com/category/standup-paddling">SUP</a><span class="spacer"> | </span>
  <a href="http://forum.talksurf.com/category/windsurfing">Windsurf</a><span class="spacer"> | </span>
  <a href="http://forum.talksurf.com/t/pros-instructors-equipment-travel/264">Pros</a><span class="spacer"> | </span>
  <a href="http://forum.talksurf.com/t/what-is-talksurf-com/265">À propos</a><span class="spacer"> | </span>
  <a href="http://forum.talksurf.com/faq">FAQ</a>
</span>
</div>
</div>

Oui, je l’avais vu ici, mais je ne sais pas où l’image talksurf est intégrée dans le code.

Je vois d’où provient l’image d’arrière-plan, mais pas l’image « talksurf » sur la gauche, qui flotte au-dessus de l’image d’arrière-plan.

Ajouter « talksurf » en tant qu’image dans Paramètres > Branding > logo résulte en une image beaucoup plus petite, car Discourse la réduit d’une hauteur originale de 120 px à seulement 31 px. Talksurf est bien plus grand que 31 px de haut.

@Paul-Reed Peut-être essayer de voir si tu peux engager @pfaffman pour aider ? Je n’ai jamais configuré cela, donc je n’ai aucune idée.

Vous pouvez augmenter la hauteur de l’en-tête avec un peu de CSS. Je peux vous aider, mais je vous suggère de créer un nouveau sujet dans Support, car cela sort un peu du sujet ici.

J’ai déjà un sujet que j’ai lancé il y a quelques jours : Image not filling header container
Est-ce que je peux continuer là-bas ?