# Как обновить очень старый сайт Discourse?

**URL:** https://meta.discourse.org/t/how-upgrade-a-very-old-discourse-site/146846
**Category:** Self-hosting
**Created:** [04.Апрель.2020 21:24:59 UTC](https://meta.discourse.org/t/how-upgrade-a-very-old-discourse-site/146846 "2020-04-04T21:24:59Z")
**Posts on this page:** 10
**Page:** 1

<div class="post-metadata">

### Author: ![justin\_gordon](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/justin_gordon/32/105029_2.png) [@justin\_gordon](https://meta.discourse.org/u/justin_gordon)
#### Post date: [04.Апрель.2020 21:24:59 UTC](https://meta.discourse.org/t/how-upgrade-a-very-old-discourse-site/146846/1 "2020-04-04T21:24:59Z")

</div>

**1. Какой самый простой способ восстановить работоспособность?**  
**2. Если у меня были резервные копии S3, охватывают ли они все актуальные данные, включая изображения, метаданные и т. д.?**

Хотя я и нашёл эту статью, она не обновлялась уже 5 лет:

> [@Upgrade path for very old versions of discourse?](https://meta.discourse.org/t/upgrade-path-for-very-old-versions-of-discourse/24789/2):
>
> The simplest way is to upgrade Discourse to a version with built in backup restore. Then backup your site, create a new site using the new guide and restore in to it. Pretty sure there should be a topic somewhere, let me know how you go.

Поэтому, прежде чем я буду дальше тратить время на нерелевантные задачи, хотел бы узнать, сможет ли кто-нибудь дать несколько полезных советов. Может, я смогу угостить кого-нибудь виртуальным пивом, дать бесплатные консультации по [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](https://github.com/shakacode/react_on_rails) или что-то ещё?

Есть ли у кого-нибудь время поработать со мной в паре над этим, а я документально оформлю все усилия?

Вот что я знаю:

1. Моя директория для Discourse — `/var/docker`, а не `/var/discourse`.
2. У меня есть свежая резервная копия в S3.
3. Я попробовал [изменить “templates/postgres.template.yml” на “templates/postgres.9.5.template.yml”]([http://Change](http://Change) “templates/postgres.template.yml” TO “templates/postgres.9.5.template.yml”)
4. Затем выяснилось, что база данных несовместима:

```plaintext
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.

```

* * *

# Соответствующие логи

```plaintext
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

```

---

<div class="post-metadata">

### Author: ![codinghorror](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/codinghorror/32/110067_2.png) [@codinghorror](https://meta.discourse.org/u/codinghorror)
#### Post date: [04.Апрель.2020 21:33:15 UTC](https://meta.discourse.org/t/how-upgrade-a-very-old-discourse-site/146846/2 "2020-04-04T21:33:15Z")

</div>

Привет, Джастин! Рад снова тебя видеть. В качестве жеста доброй воли, поскольку ты используешь Discourse уже _очень_ давно, я с радостью оплачу работу @pfaffman, чтобы он помог тебе здесь. 🤗

Просто скажи ему связаться со мной для получения оплаты.

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [04.Апрель.2020 21:52:40 UTC](https://meta.discourse.org/t/how-upgrade-a-very-old-discourse-site/146846/3 "2020-04-04T21:52:40Z")

</div>

Привет, @justin_gordon. Сайт уже работает? Если нет, можешь прислать мне информацию по S3?

Ты можешь передать её мне относительно безопасно по ссылке: [Redirecting…](https://www.literatecomputing.com/discourse-support/)

Я предполагаю, что это не срочный случай, и что начало работы в понедельник — это нормально? Если это срочно, напиши об этом в своём сообщении, и я постараюсь начать раньше.

Ты также можешь отправить мне личное сообщение здесь со своим адресом электронной почты.

---

<div class="post-metadata">

### Author: ![justin\_gordon](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/justin_gordon/32/105029_2.png) [@justin\_gordon](https://meta.discourse.org/u/justin_gordon)
#### Post date: [04.Апрель.2020 21:56:31 UTC](https://meta.discourse.org/t/how-upgrade-a-very-old-discourse-site/146846/4 "2020-04-04T21:56:31Z")

</div>

**О боже, @codinghorror, ты сделал мой день!**

@pfaffman, да, никакой срочности. Я обновлял, чтобы ответить на вопрос «как вы сделали такой красивый заголовок на [talksurf.com](http://talksurf.com)».

Как только [talksurf.com](http://talksurf.com) снова заработает, я обязательно добавлю здесь несколько заметок, которые будут полезны другим.

---

<div class="post-metadata">

### Author: ![Paul-Reed](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/paul-reed/32/160861_2.png) [@Paul-Reed](https://meta.discourse.org/u/Paul-Reed)
#### Post date: [04.Апрель.2020 22:04:27 UTC](https://meta.discourse.org/t/how-upgrade-a-very-old-discourse-site/146846/5 "2020-04-04T22:04:27Z")

</div>

> [@justin\_gordon](#):
>
> Я обновлял, чтобы помочь с запросом «как вы сделали такой красивый заголовок на [talksurf.com](http://talksurf.com)»

Джастин, мне теперь стыдно 🙁  
Прошло всего 3 дня с начала использования Discourse, а я уже устраиваю хаос!

---

<div class="post-metadata">

### Author: ![justin\_gordon](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/justin_gordon/32/105029_2.png) [@justin\_gordon](https://meta.discourse.org/u/justin_gordon)
#### Post date: [06.Апрель.2020 21:38:13 UTC](https://meta.discourse.org/t/how-upgrade-a-very-old-discourse-site/146846/6 "2020-04-06T21:38:13Z")

</div>

Привет, @Paul-Reed и @codinghorror,

@pfaffman восстановил мою работу… проделал потрясающую работу! Сайт выглядит как новый, а Discourse просто великолепен, ведь всё необходимое было в резервных копиях!

Какая удивительная технология от Discourse!

@pfaffman рассказал мне следующее:

1. Установка из двух контейнеров [описана здесь](https://support.literatecomputing.com/t/managing-a-two-container-installation/310).
2. Восстановление из резервной копии на чистой установке оказалось самым простым путём для очень старой версии.
3. Единственный файл, полезный за пределами резервных копий — это `/var/discourse/containers/app.yml`. **И мне нужно делать ежедневные резервные копии, а не раз в 7 дней!**

Важный урок, который я знал, но должен был вспомнить:

Просто потому, что вы думаете, что что-то займёт 10 минут, это не всегда так. Я взялся за это обновление, потому что хотел дать @Paul-Reed хороший совет по поводу заголовка. Ой! И я не только узнал это, но мы часто забываем об этом. Моя специализация — улучшение работы сайтов на React и Ruby on Rails через мою консалтинговую компанию [https://www.shakacode.com](https://www.shakacode.com) и мой проект с открытым исходным кодом [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](https://github.com/shakacode/react_on_rails).

DevOps с использованием Docker — это то, что я могу делать, но это отнимает много времени от того, что я пытаюсь достичь!

Поэтому, учитывая всё вышесказанное, я думаю о том, чтобы попросить @pfaffman помочь мне с обновлением моей главной страницы для [https://forum.shakacode.com/](https://forum.shakacode.com/).

Так что огромное спасибо @codinghorror и @pfaffman за всю помощь!

* * *

И если вам интересно, вот исправление для пользовательского заголовка, которое стало поводом для этого обновления моего старого сайта на Discourse.

# Пользовательский заголовок

Прежде всего, вместо того чтобы заниматься мелкими деталями, я рекомендую обратиться к @pfaffman по адресу [https://support.literatecomputing.com/](https://support.literatecomputing.com/). Кстати, я попрошу @pfaffman помочь мне, если захочу создать что-то более впечатляющее в этой области!

Но для тех, кто предпочитает делать всё самостоятельно, я думаю, что здесь есть все полезные части:

 ![2020-04-06_11-34-27](https://global.discourse-cdn.com/meta/original/3X/0/e/0ee0f9c108823f9f8f037f3dc4781433d940de99.png)

 ![2020-04-06_11-33-14](https://global.discourse-cdn.com/meta/original/3X/9/3/93894d3b59fb4927b076218bc93b24f240295987.png)

Насколько мне известно, всё остальное пустое.

## CSS

```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;
}

```

## ЗАГОЛОВОК

```html
<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">Главная</a><span class="spacer"> | </span>
  <a href="http://forum.talksurf.com/category/surfing/doug-silva">Дуг Сильва</a><span class="spacer"> | </span>
  <a href="http://forum.talksurf.com/category/surfing">Серфинг</a><span class="spacer"> | </span>
  <a href="http://forum.talksurf.com/category/kitesurfing">Кайтсерфинг</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">Виндсерфинг</a><span class="spacer"> | </span>
  <a href="http://forum.talksurf.com/t/pros-instructors-equipment-travel/264">Профи</a><span class="spacer"> | </span>
  <a href="http://forum.talksurf.com/t/what-is-talksurf-com/265">О нас</a><span class="spacer"> | </span>
  <a href="http://forum.talksurf.com/faq">FAQ</a>
</span>
</div>
</div>

```

---

<div class="post-metadata">

### Author: ![Paul-Reed](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/paul-reed/32/160861_2.png) [@Paul-Reed](https://meta.discourse.org/u/Paul-Reed)
#### Post date: [06.Апрель.2020 21:55:57 UTC](https://meta.discourse.org/t/how-upgrade-a-very-old-discourse-site/146846/7 "2020-04-06T21:55:57Z")

</div>

Да, я видел это [здесь](https://github.com/ornithes/discourse-templates/tree/master/forum.talksurf), но не знаю, где в коде добавлено изображение talksurf.

Я вижу, откуда берется фоновое изображение, но не изображение ‘talksurf’ слева, которое плавает поверх фона.

Добавление ‘talksurf’ как изображения в Настройки \> Брендинг \> Логотип приводит к тому, что изображение становится намного меньше, так как Discourse уменьшает его с исходной высоты 120 пикселей до всего 31 пикселя. Talksurf намного выше, чем 31 пиксель.

---

<div class="post-metadata">

### Author: ![justin\_gordon](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/justin_gordon/32/105029_2.png) [@justin\_gordon](https://meta.discourse.org/u/justin_gordon)
#### Post date: [06.Апрель.2020 22:14:04 UTC](https://meta.discourse.org/t/how-upgrade-a-very-old-discourse-site/146846/8 "2020-04-06T22:14:04Z")

</div>

@Paul-Reed, может, попробуй нанять @pfaffman для помощи? Я сам это настраивать не стал, поэтому ничего не знаю.

---

<div class="post-metadata">

### Author: ![Canapin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/canapin/32/119591_2.png) [@Canapin](https://meta.discourse.org/u/Canapin)
#### Post date: [06.Апрель.2020 23:25:17 UTC](https://meta.discourse.org/t/how-upgrade-a-very-old-discourse-site/146846/9 "2020-04-06T23:25:17Z")

</div>

Вы можете увеличить высоту заголовка с помощью небольшого CSS-кода. Я могу помочь вам с этим, но предлагаю создать новую тему в разделе #Support, так как это немного не по теме здесь.

---

<div class="post-metadata">

### Author: ![Paul-Reed](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/paul-reed/32/160861_2.png) [@Paul-Reed](https://meta.discourse.org/u/Paul-Reed)
#### Post date: [06.Апрель.2020 23:31:56 UTC](https://meta.discourse.org/t/how-upgrade-a-very-old-discourse-site/146846/10 "2020-04-06T23:31:56Z")

</div>

> [@Canapin](#):
>
> Я бы предложил вам создать новую тему #Support

У меня уже есть тема, которую я создал несколько дней назад — [Image not filling header container](https://meta.discourse.org/t/image-not-filling-header-container/146484)  
Можно ли продолжить обсуждение там?
