升级 Weblate#
Docker 镜像升级#
官方 Docker 镜像(请参见 使用 Docker 安装)已集成了所有 Weblate 升级步骤。除了拉取最新的版本外通常无需进行手动操作。
参见
一般的升级指示#
在升级前,请检查当前的 软件要求,因为他们可能被更改。一旦所有的要求被安装或升级,请调整你的 settings.py
,来匹配配置中的更改(正确的值请咨询 settings_example.py
)。
升级前,请务必查阅 与特定版本相关的指示。如果您要跳过某些版本,请按照升级中要跳过的所有版本的说明进行操作。有时最好先升级到某个中间版本,以确保顺利迁移。跨越多个版本的升级应该是可行的,但不像单一版本的升级那样经过良好的测试。
备注
推荐在升级前执行全数据库备份,使你可以在升级失败的情况下回滚数据库,请参见 备份和移动 Weblate。
停止 WSGI 和 Celery 进程。升级可能执行数据库的不兼容更改,因此在升级中避免旧的进程运行总是安全的。
升级 Weblate 代码。
对于 pip 安装,可以通过以下命令实现:
pip install -U "Weblate[all]==version"
或者,如果您只想获取最新发布的版本:
pip install -U "Weblate[all]"
如果不想安装所有可选依赖项,请执行以下操作:
pip install -U Weblate
通过 Git 核实,你需要取回新的源代码并升级你的安装:
cd weblate-src git pull # Update Weblate inside your virtualenv . ~/weblate-env/bin/pip install -e '.[all]' # Install dependencies directly when not using virtualenv pip install --upgrade -r requirements.txt # Install optional dependencies directly when not using virtualenv pip install --upgrade -r requirements-optional.txt
新版本 Weblate 可能有新的 Python 依赖项, 快来看看有没有你感兴趣的功能。
升级配置文件,所需的步骤请参考
settings_example.py
或 与特定版本相关的指示。升级数据库架构:
weblate migrate --noinput
收集升级的静态文件(请参见 运行服务器 和 为静态文件提供服务):
weblate collectstatic --noinput --clear
压缩 JavaScript 和 CSS 文件(可选步骤,请参见 压缩客户端资源 ):
weblate compress
如果你运行来自 Git 的版本,每次升级时还应该重新生成 locale 文件。可以通过调用后面的来进行:
weblate compilemessages
验证您的设置合理(还请参见 生产设置):
weblate check --deploy
重新启动 Celery 工作进程(请参见 使用 Celery 的后台任务)。
与特定版本相关的指示#
在 5.0 版本发生变更: 特定版本的操作指南现在包含在发行日志中,见 Weblate 5.4.3。
从较旧的大版本进行升级#
不支持跨大版本的升级。始终先升级到初始大版本的最新补丁级别。跳过此步骤进行升级不受支持,并且会搞砸升级。
如果从 2.x 发布版本升级,请始终先升级到 3.0.1。
如果从 3.x 发布版本升级,请始终首先升级到 4.0.4。
如果从 4.x 发布版本升级,请首先升级到 5.0.2。
从其它数据库迁移到 PostgreSQL#
如果在 PostgreSQL 以外的数据库上运行 Weblate,你应该考虑迁移到 PostgreSQL,因为 Weblate 与它搭配表现最佳。后面的步骤将引导你在数据库之间迁移数据。请记住迁移前要停止 web 和 Celery 服务器,否则会导致不一致的数据。
创建 PostgreSQL 数据库#
在另一个单独的数据库中运行 Weblate,并将用户账户分开通常是个好方法:
# If PostgreSQL was not installed before, set the main password
sudo -u postgres psql postgres -c "\password postgres"
# Create a database user called "weblate"
sudo -u postgres createuser -D -P weblate
# Create the database "weblate" owned by "weblate"
sudo -u postgres createdb -E UTF8 -O weblate weblate
使用 pgloader 迁移到 PostgreSQL#
pgloader 是通用迁移工具,将数据迁移到 PostgreSQL。你可以使用它来迁移 Weblate 数据库。
调整 settings.py 文件而将 PostgreSQL 用作数据库。
迁移 PostgreSQL 中的模式:
weblate migrate weblate sqlflush | weblate dbshell
运行 pgloader 来转移数据。后面的脚本可以用于迁移数据库,但你会想要学习更多关于 pgloader 的知识,来理解它做什么以及调整它来匹配你的设置:
LOAD DATABASE FROM mysql://weblate:password@localhost/weblate INTO postgresql://weblate:password@localhost/weblate WITH include no drop, truncate, create no tables, create no indexes, no foreign keys, disable triggers, reset sequences, data only ALTER SCHEMA 'weblate' RENAME TO 'public' ;
从 Pootle 迁移#
由于 Weblate 最初是作为 Pootle 的替代品而编写的,因此支持从 Pootle 迁移用户账户。你可以从 Pootle 转储用户,并使用 importusers
将其导入。