
后端开发工具【免费下载链接】weblateWeb based localization tool with tight version control integration.项目地址https://gitcode.com/gh_mirrors/we/weblate点击查看免费下载Weblate 是基于版本控制集成的高可用翻译平台升级涉及数据库结构变更、Celery 任务队列与静态资源等多个层面。本文以官方升级文档为核心系统讲解 Docker 镜像升级、通用源码/PyPI 升级的完整命令链、版本跳跃策略与支持的迁移路径并结合仓库源码说明migrate、collectstatic、check --deploy等命令的作用同时覆盖从 MySQL/MariaDB 迁移到 PostgreSQLpgloader以及从 Pootle 迁移用户账号的完整流程帮助你在生产环境安全、平滑地完成升级。Docker 镜像升级零手工干预官方 Weblate Docker 镜像参见 Docker 安装文档已经整合了全部升级步骤。通常情况下你只需要拉取最新或至少更新的镜像即可不需要任何手工操作。镜像升级的完整操作参见 docker.rst 中的 upgrading-docker 小节为# 拉取最新版本的镜像 docker compose pull # 停止并销毁旧容器 docker compose down # 在后台启动新容器 docker compose up -d # 跟踪升级期间的日志 docker compose logs -fWeblate 数据库会在容器首次启动时自动迁移无需额外手工操作。需要特别注意的是直接升级仅支持当前或上一个自然年发布版本。如果从更早的版本升级必须先升级到中间版本见下文“版本特定说明”。如果使用示例 Compose 文件且未做本地修改通常无需其他动作自定义过的 Compose 文件属于部署本身的一部分需要自行维护。建议只升级 Weblate 容器保持 PostgreSQL 容器停留在现有版本升级 PostgreSQL 过程较繁琐且多数情况下收益有限。如需升级 PostgreSQL 服务参考 docker.rst 中的 docker-postgres-upgrade 小节。通用升级步骤pip 与 Git 安装的完整命令链对于非 Docker 部署升级前务必先阅读 版本更新日志与具体要求requirements相关章节确保新依赖已安装或升级同时核对settings.py是否与配置变更一致以settings_example.py的正确值为准。完整升级流程如下等待 Celery 队列清空停止 WSGI 与 Celery 进程。Celery 任务队列在版本之间不是稳定接口旧版本遗留的排队任务在新版本中不保证可用。队列长度可在管理界面的性能报告中监控也可使用wladmin命令查看。从源码结构看队列统计最终由 weblate/utils/stats.py 中的get_celery_queues调用weblate.utils.celery.get_queue_stats()实现对应的命令测试见 weblate/utils/tests/test_commands.py 中的test_queues。升级 Weblate 本身。pip 安装方式升级到指定版本uv pip install -U weblate[all]version或者直接升级到最新发布版uv pip install -U weblate[all]如果不需要全部可选依赖uv pip install -U weblateGit 检出方式先拉取新源码再更新安装cd weblate-src git pull # 在 Python 虚拟环境中更新 Weblate . ~/weblate-env/bin/uv pip install -e .[all] # 不使用 Python 虚拟环境时直接安装依赖 uv pip install --upgrade -e . # 不使用 Python 虚拟环境时安装可选依赖 uv pip install --upgrade -e .[all].[all]对应仓库 pyproject.toml 中声明的完整依赖集合包含各文件格式、机器翻译后端等可选能力。检查新版本的 Python 依赖。新版本可能引入新的python-deps确认它们是否覆盖你需要的功能如特定格式支持。升级配置文件。参照 settings_example.py 或版本特定说明逐项核对settings.py。升级数据库weblate migrate --noinputmigrate会执行所有数据库结构迁移migration这是升级中最关键的一步--noinput跳过交互确认便于脚本化执行。收集更新后的静态文件weblate collectstatic --noinputGit 安装时重新编译消息文件每次升级都应执行weblate compilemessages验证部署配置是否健康weblate check --deploy该命令会执行生产环境检查对应weblate/wladmin/management/commands/configuration_health_check.py覆盖数据库、缓存、安全等部署要点。重启 Celery worker。部分升级会在后台通过周期性 Celery 任务执行翻译记忆translation memory的作用域回填scope backfill与整合consolidation因此升级后务必保持 Celery 持续运行并在管理界面“管理 性能报告”中观察进度。重要升级前务必备份整个数据库以便升级失败时回滚参见备份文档。版本特定说明跨版本升级的“中间跳板”自 Weblate 5.0 起版本特定说明已并入发布说明参见 changes.rst 变更日志。直接升级仅支持当前或上一个自然年发布的版本。跨过这一边界必须先升级到规定的中间版本跳过中间版本不被支持且会损坏安装当前版本必须先升级到2.x3.0.13.x4.0.44.x5.0.25.0.x – 5.9.x5.10.45.10.x 及更新可直接升级对于跳过多版本的升级需要遵循所跳过所有版本的说明。逐步升级到中间版本通常更稳妥跨多个版本的升级理论上可行但不如单版本升级经过充分测试。策略上建议先列出当前版本到目标版本之间的所有版本特定说明逐一满足优先采用“渐进升级”先到最近的支持中间版本再继续向上每个版本升级后都执行一次weblate check --deploy确认环境健康。从其他数据库迁移到 PostgreSQL为什么必须迁移Weblate 已不再支持 MySQL 和 MariaDB使用这些数据库的实例必须在升级前迁移到 PostgreSQL。迁移前务必同时停止 Web 服务和 Celery 服务否则可能产生不一致的数据。在 PostgreSQL 中创建数据库通常建议让 Weblate 使用独立数据库和独立用户账号# 如果之前未安装过 PostgreSQL先设置主密码 sudo -u postgres psql postgres -c \password postgres # 创建名为 weblate 的数据库用户-D 禁止建库权限-P 提示设置密码 sudo -u postgres createuser -D -P weblate # 创建归 weblate 用户所有的 UTF8 数据库 sudo -u postgres createdb -E UTF8 -O weblate weblate使用 pgloader 迁移数据pgloader是通用的数据库迁移工具可用于迁移 Weblate 数据库修改settings.py将DATABASES指向 PostgreSQL。在 PostgreSQL 中先迁移出空表结构weblate migrate weblate sqlflush | weblate dbshell第一步在空库上执行 Django 迁移生成最新 schema第二步通过sqlflush清空其中的初始数据否则与待迁移数据冲突二者配合可以确保目标库结构完整且干净。运行 pgloader 传输数据。下面的脚本可直接用于迁移但建议先了解pgloader的语义再按自身环境微调LOAD DATABASE FROM mysql://weblate:passwordlocalhost/weblate INTO postgresql://weblate:passwordlocalhost/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 ;关键点解读create no tables与create no indexes表示表结构已由前一步的migrate创建pgloader 只搬运数据no foreign keys/disable triggers提升导入性能data only限定仅传输数据最后将weblateschema 重命名为 PostgreSQL 默认的public保证 Weblate 应用无需额外配置即可访问。从 Pootle 迁移用户账号Weblate 最初就是作为 Pootle 的替代品开发的因此支持从 Pootle 迁移用户账号。你可以从 Pootle 导出用户数据再使用wladmin:importusers命令导入weblate importusers users.json命令实现见 weblate/auth/management/commands/importusers.py支持--check参数只检查不导入Only check import, do not actually create users导入源为 Django JSON dump 格式兼容含fields键的导出自动解包跳过is_active为 False、用户名或邮箱为空、以及用户名/邮箱已存在的记录避免重复用户全名由first_name/last_name组合生成缺失时退化为用户名密码以原始字段导入password字段通常为哈希值可通过weblate shell手工校正。对应测试见 weblate/auth/tests/test_commands.py 中的test_importusers覆盖了正常导入、重复用户跳过、无效文件报错等场景可作为导入前行为验证的参考。升级前的通用检查清单综合上述内容一次生产升级的完整检查清单如下阅读变更日志与版本特定说明确认从当前版本到目标版本的路径被支持若跨越支持边界先按表格升级到中间版本完整备份数据库与DATA_DIR参照 备份文档等待 Celery 队列清空停止 WSGI 与 Celery 进程升级 Weblate 代码与依赖uv pip install -U weblate[all]或 Git pull pip install -e .[all]依据 settings_example.py 更新配置文件执行weblate migrate --noinput升级数据库执行weblate collectstatic --noinput收集静态文件Git 安装额外执行weblate compilemessages执行weblate check --deploy验证环境重启 Celery并监控后台的翻译记忆回填/整合进度。按照以上步骤无论是单版本升级、跨年跳跃还是数据库平台迁移都能在数据安全的前提下完成。赞分享后端开发工具【免费下载链接】weblateWeb based localization tool with tight version control integration.项目地址https://gitcode.com/gh_mirrors/we/weblate点击查看免费下载相关推荐phpredis版本升级指南从入门到精通的安全迁移策略phpredis版本升级指南从入门到精通的安全迁移策略 phpreids作为PHP与Redis数据库通信的核心扩展版本升级是每个开发者都需要掌握的重要技能。后端Husky版本迁移指南从v4升级到v9的完整步骤Husky版本迁移指南从v4升级到v9的完整步骤 Husky作为Git钩子管理工具从v4到v9经历了重大架构变革。本文提供完整迁移指南帮助开发者顺利完成H开发工具版本控制DeepSearcher版本迁移指南从v0.1到v1.0的完整升级步骤DeepSearcher版本迁移指南从v0.1到v1.0的完整升级步骤 DeepSearcher作为开源深度研究工具在v1.0版本中带来了革命性的架构改进和人工智能大模型RAGAI Agent深度研究知识库创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考