كيف يمكن ترقية موقع Discourse قديم جداً؟

1. ما أسهل طريقة للعودة إلى العمل مرة أخرى؟
2. إذا كان لدي نسخ احتياطية على S3، فهل غطت جميع البيانات ذات الصلة، بما في ذلك الصور والبيانات الوصفية وما إلى ذلك؟

في حين أنني وجدت هذه المقالة، إلا أنها لم يتم تحديثها منذ 5 سنوات:

لذلك، قبل أن أقضي المزيد من الوقت في تفاصيل غير ضرورية اليوم، أود أن أرى ما إذا كان بإمكان أي شخص تقديم بعض النصائح المفيدة. ربما يمكنني شراء بيرة افتراضية لشخص ما، أو تقديم بعض النصائح المجانية على 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 أو أي شيء آخر؟

هل لدى أي شخص وقت لمشاركة العمل معي في هذا وسأقوم بتوثيق الجهود؟

إليك ما أعرفه:

  1. مجلدي الخاص بـ discourse هو /var/docker وليس /var/discourse.
  2. لدي نسخة احتياطية حديثة على S3.
  3. حاولت [تغيير “templates/postgres.template.yml” إلى “templates/postgres.9.5.template.yml”](http://Change “templates/postgres.template.yml” TO “templates/postgres.9.5.template.yml”)
  4. ثم تكون قاعدة البيانات غير متوافقة:
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.

السجلات ذات الصلة

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

مرحبًا جاستن! رائع أن أراك مرة أخرى. كعمل لطف لأنك تستخدم Discourse منذ وقت طويل جدًا، سأكون سعيدًا بدفع @pfaffman لمساعدتك هنا. :hugs:

فقط أخبره بالاتصال بي للحصول على الدفع.

مرحبًا، @justin_gordon. هل الموقع يعمل الآن؟ إذا لم يكن كذلك، هل يمكنك تزويدي بمعلومات S3؟

يمكنك إرسالها إليّ بطريقة آمنة نسبيًا عبر Redirecting…

أفترض أن هذا ليس حالة طارئة وأن البدء يوم الاثنين مقبول؟ إذا كانت الحالة طارئة، فأخبرني بذلك في رسالتك وسأحاول البدء في وقت أقرب.

يمكنك أيضًا إرسال رسالة خاصة لي هنا مع عنوان بريدك الإلكتروني.

يا إلهي، @codinghorror، لقد جعلت يومي!

@pfaffman، نعم، لا يوجد استعجال. كنت أقوم بالترقية لمساعدة طلب حول “كيف جعلت رأس الصفحة لديك جميلاً جداً على talksurf.com

بمجرد أن يعود talksurf.com إلى العمل، سأحرص على إضافة بعض الملاحظات هنا ستكون مفيدة للآخرين.

جاستن، أشعر بالذنب الآن :slightly_frowning_face:
بعد 3 أيام فقط من استخدام Discourse، لقد تسببت بالفعل في فوضى!

مرحبًا @Paul-Reed و @codinghorror،

لقد أعادني @pfaffman إلى العمل… وقام بعمل مذهل! الموقع يبدو جديدًا ولامعًا، وDiscourse رائع لأن كل ما نحتاجه كان موجودًا في النسخ الاحتياطية!

ما هذه التقنية الرائعة من Discourse!

أخبرني @pfaffman بالتالي:

  1. تثبيت مكون من حاويتين موصوف هنا.
  2. يبدو أن الاستعادة من النسخة الاحتياطية على تثبيت جديد هي المسار الأقل مقاومة لتثبيت قديم جدًا.
  3. لا يوجد حقًا سوى ملف واحد مفيد خارج النسخ الاحتياطية، وهو ملف /var/discourse/containers/app.yml. وكان يجب أن يكون لدي نسخ احتياطية يومية، وليس كل 7 أيام!

درس رئيسي كنت أعرفه وكان يجب أن أتذكره:

فقط لأنك تعتقد أن شيئًا ما سيستغرق 10 دقائق، فقد لا يكون كذلك أحيانًا. دخلت في هذا التحديث فقط لأنني أردت التأكد من أنني قدمت نصيحة جيدة لـ @Paul-Reed حول الرأس. أوبس! ولم أتعلم هذا فحسب، بل غالبًا ما ننسى. تخصصي هو جعل المواقع التي تستخدم React و Ruby on Rails تعمل بشكل أفضل من خلال استشارتي 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.

أعمال DevOps من نوع Docker شيء أستطيع فعله، لكنه يستغرق الكثير من الوقت بعيدًا عن ما أحاول تحقيقه!

لذلك، بسبب كل ذلك، أفكر في طلب مساعدة @pfaffman في بعض التحديثات لصفحتي الرئيسية على https://forum.shakacode.com/.

لذا، شكرًا جزيلاً لـ @codinghorror و @pfaffman على كل المساعدة!


وإذا كنت مهتمًا، فإليك الإصلاح للرأس المخصص الذي أشعل هذا التحديث لموقع Discourse القديم الخاص بي.

الرأس المخصص

أولاً، بدلاً من الانشغال بأشياء غير ضرورية، أوصي بالاتصال بـ @pfaffman على https://support.literatecomputing.com/. في الواقع، سأطلب من @pfaffman مساعدتي إذا أردت إنشاء أي شيء أفضل في هذا المجال!

ولكن، بالنسبة لمن يفضلون العمل بأنفسهم، أعتقد أن جميع الأجزاء المفيدة موجودة هنا:

حسب علمي، كل شيء آخر فارغ.

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

الرأس

<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">سب</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">الأسئلة الشائعة</a>
</span>
</div>
</div>

نعم، لقد رأيت ذلك هنا، لكنني لا أعرف أين يتم تضمين صورة talksurf في الكود.

يمكنني رؤية مصدر صورة الخلفية، لكن ليس صورة ‘talksurf’ على اليسار، التي تطفو فوق صورة الخلفية.

إضافة ‘talksurf’ كصورة في الإعدادات > العلامة التجارية > الشعار تؤدي إلى ظهور صورة أصغر بكثير، حيث يقوم Discourse بتصغيرها من ارتفاع أصلي يبلغ 120 بكسل إلى 31 بكسل فقط. أما صورة Talksurf فهي أكبر بكثير من 31 بكسل في الارتفاع.

@Paul-Reed ربما حاول توظيف @pfaffman للمساعدة؟ لم أقوم بإعداد هذا من قبل، لذا لا أعرف شيئًا.

يمكنك جعل الرأس أطول قليلاً باستخدام CSS. يمكنني مساعدتك في ذلك، لكنني أنصحك بإنشاء موضوع جديد في #الدعم لأن هذا الموضوع خارج نطاق النقاش هنا.

لدي موضوع موجود بدأته قبل بضعة أيام - Image not filling header container
هل من المقبول الاستمرار فيه؟