Bỏ qua để đến nội dung

Nâng cấp ReputeCast

Hướng dẫn thao tác
Dành cho:
Người vận hành máy chủ
Trong ứng dụng:
Quản trị hệ thống, rồi Hệ thống và cập nhật

Để nâng cấp ReputeCast, bạn thay image hoặc tệp nhị phân bằng một bản phát hành mới hơn và để nó áp dụng các migration cơ sở dữ liệu; mọi thứ khác (cấu hình, khóa bí mật, dữ liệu) giữ nguyên.

Quản trị viên hệ thống xem được phiên bản đã cài, bản phát hành mới nhất và changelog của nó trong Quản trị hệ thống, rồi Hệ thống và cập nhật, ở thẻ Phiên bản và cập nhật. Từ dòng lệnh, reputecast version in ra cùng thông tin đó: reputecast <version> (<commit>) <Go version>.

Thẻ Version & updates hiển thị phiên bản đã cài, bản phát hành mới nhất v1.5.0 kèm changelog, lệnh nâng cấp và việc kiểm tra bản phát hành hằng ngày đang bật.
  • Nhãn Có bản cập nhật xuất hiện khi bản phát hành mới nhất mới hơn phiên bản đã cài. Các bản build không có số phiên bản phát hành (như dev) không bao giờ hiện nhãn này.
  • Trong mục Nâng cấp trên máy chủ, thẻ hiển thị lệnh Docker Compose cd /opt/reputecast && docker compose pull && docker compose up -d. Hãy thay /opt/reputecast bằng thư mục chứa docker-compose.yml của bạn.
  • Công tắc Kiểm tra bản phát hành trên GitHub mỗi ngày một lần lấy bản phát hành mới nhất từ api.github.com mỗi ngày một lần. Yêu cầu này không gửi kèm số phiên bản hay ID hệ thống; đây là lệnh gọi ra ngoài duy nhất ReputeCast tự thực hiện. Bạn có thể tắt công tắc ở đây, hoặc đặt updates.check: false trong cấu hình để tắt cho toàn hệ thống (khi đó công tắc bị khóa).
  • Đọc ghi chú phát hành của mọi phiên bản nằm giữa phiên bản của bạn và phiên bản mới, trên trang phát hành GitHub.
  • Sao lưu cơ sở dữ liệu và khóa bí mật. Migration thay đổi schema, và bản sao lưu là cách quay lại đáng tin cậy.
  • Dự tính một khoảng gián đoạn ngắn trong lúc ứng dụng khởi động lại.
  1. Vào thư mục chứa docker-compose.yml và tạo bản sao lưu:

    Terminal window
    docker compose exec -T postgres pg_dump -U reputecast -d reputecast -Fc > reputecast-before-upgrade.dump
  2. Nếu bạn ghim phiên bản trong .env (REPUTECAST_VERSION=v1.4.2), hãy đổi sang tag của bản phát hành mới. Tag của image là tag phát hành, giữ nguyên chữ v ở đầu, cùng với latest. Nếu không có REPUTECAST_VERSION, tệp compose dùng latest.

  3. Kéo image mới và tạo lại container của ứng dụng:

    Terminal window
    docker compose pull && docker compose up -d

    Image khởi động với serve --auto-migrate, nên nó áp dụng các migration còn chờ trước khi phục vụ yêu cầu. Log hiển thị một dòng migration applied cho mỗi migration.

  • Phiên bản và cập nhật hiển thị phiên bản mới là phiên bản đã cài.
  • reputecast migrate status liệt kê mọi migration kèm ngày áp dụng và không có migration nào ở trạng thái pending. Trong Docker: docker compose exec app /usr/local/bin/reputecast migrate status.
  • /readyz trả về ready (health check, metrics và log).

Chạy lại image hoặc tệp nhị phân cũ không hoàn tác migration: cơ sở dữ liệu vẫn giữ schema mới hơn.

  • Khôi phục bản sao lưu để trở về chính xác trạng thái trước khi nâng cấp: dừng ReputeCast, khôi phục bản dump bạn đã tạo (xem khôi phục), rồi khởi động phiên bản bạn chạy trước đó. Mọi thay đổi sau khi nâng cấp sẽ mất.
  • Ghim phiên bản trước (REPUTECAST_VERSION trong .env, rồi docker compose up -d), như thẻ Phiên bản và cập nhật gợi ý, khi bạn muốn giữ dữ liệu đã ghi từ lúc nâng cấp.
  • reputecast migrate down chỉ hoàn tác migration mới nhất của ReputeCast, mỗi lần chạy một migration, và không đụng đến các bảng của hàng đợi công việc. Nên ưu tiên khôi phục bản sao lưu.
  • Container mới thoát ngay khi khởi động: đọc docker compose logs app. Migration thất bại sẽ dừng quá trình khởi động với migrate: …; hãy khôi phục bản sao lưu và báo lỗi kèm phiên bản phát hành.
  • Thẻ phiên bản báo kiểm tra cập nhật thất bại: máy chủ không kết nối được api.github.com, hoặc GitHub trả về lỗi. Không có gì khác bị ảnh hưởng; lần kiểm tra tiếp theo chạy vào ngày hôm sau.
  • Bản phát hành mới nhất hiển thị dấu gạch ngang: việc kiểm tra đang tắt hoặc chưa chạy lần nào.