Score:0

วิธีแก้ไขคอนเทนเนอร์นักเทียบท่า Nextcloud หลังจากข้ามเวอร์ชันหลัก

ธง mx

ฉันใช้งานอินสแตนซ์ Nextcloud ส่วนตัวโดยใช้นักเทียบท่า (นักเทียบท่า-เขียน) ฉันพยายามอัปเกรดเป็นเวอร์ชัน Nextcloud ที่ใหม่กว่า แต่ไม่รู้ว่าฉันไม่ควรข้ามเวอร์ชันหลัก (จาก 21 เป็น 23) ตอนนี้ฉันไม่สามารถเริ่มได้เลย:

  • เมื่อฉันพยายามเริ่มคอนเทนเนอร์ด้วยเวอร์ชัน 23 และทริกเกอร์การอัปเกรด มันล้มเหลวเนื่องจากไม่สามารถอัปเกรดจาก 21:
    leifb@***:~/nextcloud$ sudo docker-compose exec --user www-data app php occ upgrade
    Nextcloud หรือแอปใดแอปหนึ่งจำเป็นต้องอัปเกรด - มีคำสั่งให้ใช้ในจำนวนจำกัดเท่านั้น
    [...]
    ข้อยกเว้น: ไม่รองรับการอัปเดตระหว่างเวอร์ชันหลักหลายเวอร์ชันและดาวน์เกรด
    การอัพเดทล้มเหลว
    [...]
    
  • เมื่อฉันพยายามเริ่มคอนเทนเนอร์ด้วยเวอร์ชัน <23 มันล้มเหลวเพราะคิดว่าข้อมูลมาจากเวอร์ชัน 23:
    app_1 | ไม่สามารถเริ่ม Nextcloud ได้เนื่องจากเวอร์ชันของข้อมูล (23.0.3.2) สูงกว่าเวอร์ชันอิมเมจนักเทียบท่า (22.2.6.2) และไม่รองรับการปรับลดรุ่น คุณแน่ใจหรือไม่ว่าได้ดึงอิมเมจเวอร์ชันใหม่ล่าสุดแล้ว
    

มีวิธีบังคับให้อัปเกรดหรือเริ่มต้นด้วยเวอร์ชัน 22 หรือไม่

นี่คือไฟล์ docker-compose ของฉัน:

รุ่น: '2'

ปริมาณ:
  เน็กซ์คลาวด์:
  ฐานข้อมูล:

บริการ:
  ฐานข้อมูล:
    ภาพ: mariadb
    รีสตาร์ท: เสมอ
    คำสั่ง: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
    ปริมาณ:
      - db:/var/lib/mysql
    สิ่งแวดล้อม:
      - MYSQL_ROOT_PASSWORD=***
      - MYSQL_PASSWORD=***
      - MYSQL_DATABASE=เน็กซ์คลาวด์
      - MYSQL_USER=เน็กซ์คลาวด์

  แอป:
    รูป: nextcloud:22
    รีสตาร์ท: เสมอ
    พอร์ต:
      - 9009:80
    ลิงค์:
      - ฐานข้อมูล
    ปริมาณ:
      - nextcloud:/var/www/html
    สิ่งแวดล้อม:
      - MYSQL_PASSWORD=***
      - MYSQL_DATABASE=เน็กซ์คลาวด์
      - MYSQL_USER=เน็กซ์คลาวด์
      - MYSQL_HOST=ฐานข้อมูล
      - แทนที่โฮสต์=***
      - OVERWRITEPROTOCOL=https

ขอขอบคุณ!

Score:0
ธง mx

ฉันสามารถแก้ไขปัญหาได้โดยการเปลี่ยนเวอร์ชันด้วยตนเองใน version.php ไฟล์ของ เน็กซ์คลาวด์ ปริมาณ.

นี่อาจทำให้เกิดปัญหาที่แก้ไขไม่ได้ สำรองข้อมูลของคุณหากคุณต้องการทำเช่นเดียวกัน!

เส้นทางที่สมบูรณ์สำหรับไฟล์นั้นคือ: /var/lib/docker/volumes/nextcloud_nextcloud/_data/version.php

ฉันมีปริมาณ Nextcloud แบบเก่าซึ่งฉันสร้างขึ้นเมื่อฉันตั้งค่า nextcloud ในตอนแรก ฉันเพิ่งใช้ version.php จากเล่มนั้น เพราะผมค่อนข้างมั่นใจว่าเป็นเวอร์ชั่นที่ถูกต้อง

นี่คือสิ่งที่เปลี่ยนแปลง:

"ไม่ถูกต้อง" version.php:

<?php 
$OC_Version = อาร์เรย์(23,0,3,2);
$OC_VersionString = '23.0.3';
$OC_Edition = '';
$OC_Channel = 'คงที่';
$OC_VersionCanBeUpgradedFrom = อาร์เรย์ (
  'เน็กซ์คลาวด์' => 
  อาร์เรย์ (
    '22.2' => จริง,
    '23.0' => จริง,
  ),
  'owncloud' => 
  อาร์เรย์ (
    '10.5' => จริง,
  ),
);
$OC_Build = '2022-03-21T13:05:48+00:00 5f6449283b5eb3cd0c96f475ff6f68a6c73a8140';
$ผู้ขาย = 'nextcloud';

"ถูกต้อง" version.php:

<?php 
$OC_Version = อาร์เรย์(21,0,1,1);
$OC_VersionString = '21.0.1';
$OC_Edition = '';
$OC_Channel = 'คงที่';
$OC_VersionCanBeUpgradedFrom = อาร์เรย์ (
  'เน็กซ์คลาวด์' => 
  อาร์เรย์ (
    '20.0' => จริง,
    '21.0' => จริง,
  ),
  'owncloud' => 
  อาร์เรย์ (
    '10.5' => จริง,
  ),
);
$OC_Build = '2021-04-08T13:32:52+00:00 bd555dbe8568b2509bd7d82fabbe38d76c86afbe'
;
$ผู้ขาย = 'nextcloud';

หลังจากการเปลี่ยนแปลงนั้น ฉันสามารถเริ่ม nextcloud ในเวอร์ชัน 21 ก่อนเพื่อตรวจสอบว่าทุกอย่างยังคงอยู่หรือไม่ ต่อไปฉันสามารถเริ่มต้นและอัปเดตเป็น 22 และ 23 ในขั้นตอนต่างๆ ได้

ป.ล.:

นักเทียบท่า-เขียน exec --user www-data app php occ ให้คุณอัปเดตและปิดใช้งานโหมดการบำรุงรักษาด้วยตนเอง

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา