Kiwi TCMS 升级到最新版本后如何恢复到早期版本

How to restore the Kiwi TCMS to earlier version after upgraded to latest

我已经运行Kiwi TCMS作为Docker容器,版本运行是9.0.1。现在看到最新的10.0版本了,想更新一下。不确定这是否会破坏现有数据。

所以,我已经按照它获取了数据库并上传了文件备份, https://kiwitcms.org/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/

但是,如果最新版本无法按预期运行或出现任何问题,我该如何降级到旧版本映像?我找到了 docker 标签概念但不确定如何应用它?

你能确认以下将恢复到旧版本吗?

  1. 还原已备份的数据库文件和上传文件。
  2. 将 docker-compose 文件中的图像更改为旧图像?像我的情况一样,我可能想要提取版本 9.0.1 图像,因此更改 图像:kiwitcms/kiwi:9.0.1 有效吗?
web:
    container_name: kiwi_web
    depends_on:
        - db
    restart: always
    image: kiwitcms/kiwi:9.0.1

或者我应该如何标记版本 9.0.1,然后恢复标记的版本,以防恢复最新升级?

But, how can I downgrade to an older version image, if the latest version does not work as expected or any problem comes? I found the docker tag concept and not sure how to apply it?

最简单的方法是销毁您不满意的实例,从头开始一个新实例(使用 v9.0.1)并从备份中恢复 files/DB。我假设您在升级前进行了备份。

image: kiwitcms/kiwi:9.0.1 works?

理论上可行,但实际上行不通,因为 Kiwi TCMS 上游不提供带有版本标记的容器映像。请参阅 https://kiwitcms.org/#subscriptions,行 Only latest releasesVersioned releases from kiwitcms/version

Or how should I tag version 9.0.1

这取决于您已经完成或未完成的事情,这可能是可能的,也可能是不可能的:

  • 执行docker images,如果你看到
kiwitcms/kiwi                                              latest    9f23186803d5   8 weeks ago     736MB
kiwitcms/kiwi                                              <no tag>    <another image hash>   ...

这意味着 latest 指向 v10,而未标记的图像是您之前的图像,在您的例子中是 9.0.1。然后你可以使用 docker tag 命令来标记它并在 docker-compose.yml 文件中使用它。

  • 如果您只看到 kiwitcms/kiwi:latest 图片,这意味着您已经从系统中删除了之前的图片。您无权访问它。您的选择是:
    1. 使用相同的 git 标签或
    2. 从源重建
    3. 如果恢复到旧版本至关重要,请购买订阅以访问私有 kiwitcms/version 存储库。

作为一种好的做法,您可以遵循以下 2 条建议:

  1. 使用“从备份恢复”技术或者“克隆 docker 图像”,这样您就可以升级和试验不同的 Kiwi TCMS 实例,而不是主要实例你使用的。如果您对最新版本感到满意,则可以升级主实例。请注意,通过“克隆 docker 图像”我的意思是使 运行 image/container 文件在不同的机器或可能是同一台主机上可用,但启动辅助 Kiwi TCMS 实例 + 辅助D B。 ATM 我不确定具体该怎么做,但 docker 本身或其他 Linux 工具应该能够在这里提供帮助。

  2. docker tag 你本地的 kiwitcms/kiwi 图片当你 download/deploy/upgrade 它们时,你可以参考此时的版本。这将避免丢失旧图像。

  3. 额外提示:使用 docker tag,您还可以提供自己的自定义图像名称,并可能将这些图像上传到您自己的 docker 存储库以供以后使用 access/backup 或在多个主机系统之间分发它们。