Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Outline升级问题 #50

Closed
S4kur4 opened this issue Mar 6, 2023 · 8 comments
Closed

Outline升级问题 #50

S4kur4 opened this issue Mar 6, 2023 · 8 comments

Comments

@S4kur4
Copy link

S4kur4 commented Mar 6, 2023

我是这个项目比较早期的用户,当时部署完测试良好并且立马在团队内投入使用。不过使用了一段时间发现Outline落后了很多个版本,并且当时正在用的版本(v0.63.0)的确有一些bug,所以打算备份数据做一次升级。

先是尝试直接把所有依赖的docker镜像更新,结果无法正常使用。后来又发现项目的安装脚本更新了,在新的环境上的确能安装到最新的Outline版本,但是依然无法把老版本的数据备份提供给新环境使用。也尝试了多次只把Outline或者个别的镜像更新,其他镜像保留老版本,但都失败而终了。

目前是把Outline固定在v0.63.0这个版本了,Redis、Postgres这些其他镜像也都保留一开始安装时的版本。唯一能升级的办法貌似只能重新搭建一个,但是数据迁移成了问题,手工去重新编辑文章太麻烦了。

有啥好的办法吗?

@vicalloy
Copy link
Owner

vicalloy commented Mar 15, 2023

最初的镜像里统一用的 latest 版,升级后容易出现问题。
后续的脚本里各软件版本都有明确指定。

我对自己用的环境做了个升级。
目前发现:

  1. Postgres/Minio 不能随便换版本。换版本后会无法启动。
  2. Outline可以正常升级不受影响。

建议做法:
更新到最版本的 outline-docker-composescripts/config.sh 中指定各软件的版本。

注:查看版本方法

sudo docker-compose exec wk-minio minio --version
sudo docker-compose exec wk-postgres postgres --version

@enjoy-learning-everything

可以考虑使用导入和导出功能,会把图片等附件一起导出,导入的时候引用关系也会处理好,文章内容不需要重新编辑
就是要注意新搭建的时候注意修改参数以下参数来放开outline以及存储服务对上传文件的限制:
修改env.outline文件中参数值,单位为Byte:
AWS_S3_UPLOAD_MAX_SIZE=102400000
env.outline文件中添加参数,单位为Byte:
MAXIMUM_IMPORT_SIZE=102400000
如果你外部自己还有一个nginx,你还需要注意修改nginx的client_max_body_size参数来提高nginx对上传文件的大小限制,比如设置client_max_body_size 100m;
这些所有值都需要大于你导出的文件大小。

@wangweitung
Copy link

我是这个项目比较早期的用户,当时部署完测试良好并且立马在团队内投入使用。不过使用了一段时间发现Outline落后了很多个版本,并且当时正在用的版本(v0.63.0)的确有一些bug,所以打算备份数据做一次升级。

先是尝试直接把所有依赖的docker镜像更新,结果无法正常使用。后来又发现项目的安装脚本更新了,在新的环境上的确能安装到最新的Outline版本,但是依然无法把老版本的数据备份提供给新环境使用。也尝试了多次只把Outline或者个别的镜像更新,其他镜像保留老版本,但都失败而终了。

目前是把Outline固定在v0.63.0这个版本了,Redis、Postgres这些其他镜像也都保留一开始安装时的版本。唯一能升级的办法貌似只能重新搭建一个,但是数据迁移成了问题,手工去重新编辑文章太麻烦了。

有啥好的办法吗?

你导入导出数据成功了吗?

@vicalloy
Copy link
Owner

Postgres和minio要固定版本,不然服务可能跑不起来。
Outline自身有数据库升级到处理,可以直接将Outline升级为新版本。

@wangweitung
Copy link

Postgres和minio要固定版本,不然服务可能跑不起来。 Outline自身有数据库升级到处理,可以直接将Outline升级为新版本。

谢谢,升级outline至0.72.2后可以导出了。

@wangweitung
Copy link

新增一个问题:

旧的outline有多个账户,每个目录不同用户有不同权限,这个要如何迁移?

@vicalloy
Copy link
Owner

vicalloy commented Nov 1, 2023

新增一个问题:

旧的outline有多个账户,每个目录不同用户有不同权限,这个要如何迁移?

一直是一个人用,没注意过这个问题。

@fan-wen
Copy link

fan-wen commented Mar 2, 2024

最近折腾了很久这个升级,终于搞定了。楼上各位说的都很有帮助,主要的问题出在1) Postgres/Minio 版本不能换,2) 不能更换为local storage(否则之前的attachment链接失效)

我是从版本0.65.2升级到最新0.78.2.在docker-compose.yml中,保留其他的image信息,仅仅修改wk-outline下:
image: outlinewiki/outline:0.75.2 (我的配置在这里

  wk-outline:
    image: outlinewiki/outline:0.75.2
    command: sh -c "yarn db:migrate --env production-ssl-disabled && yarn start"
    environment:
      - DATABASE_URL=postgres://user:pass@wk-postgres:5432/outline
      - DATABASE_URL_TEST=postgres://user:pass@wk-postgres:5432/outline-test
      - REDIS_URL=redis://wk-redis:6379
      - AWS_S3_UPLOAD_BUCKET_NAME=outline-bucket
    env_file:
      - ./env.outline
      - ./env.oidc
    restart: always
    depends_on:
      - wk-postgres
      - wk-redis
      - wk-minio
    networks:
      - outlinewiki

然后重新pull outline这个image(非常重要,否则会pull全部image——之前的latest tag继续保留即可,不要改成具体版本,否则如果版本跟local不一样,也会重新pull 并且导致不兼容)

docker-compose pull wk-outline

然后更新数据库

docker compose run --rm wk-outline yarn db:migrate --env=production-ssl-disabled

在env.outline中,添加这一行(非常重要)
FILE_STORAGE=s3

之所以继续选择s3而不是local,是因为我发现之前保存的附件格式都有点奇怪,明明是一个image,但是保存成一个folder(xxx.png),里面还有文件。如果改成FILE_STORAGE=local,就会直接读取这个文件,出现错误“EISDIR: illegal operation on a directory, read"

@S4kur4

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants