编译 po 到 mo

用法

bench compile-po-to-mo [OPTIONS]

前提条件

你的应用的 locale 目录中已有 PO 文件,其中包含至少一种语言的翻译。

描述

PO 文件以人类可读的格式保存翻译。在应用程序使用这些翻译之前,需要将它们编译成二进制文件(以 MO 结尾)。该二进制文件存储在 bench 的 sites/assets/locale 文件夹中。

为了提高效率,如果存在比 PO 文件更新的 MO 文件,则会跳过编译。

此命令会随 bench build 和 bench update 自动执行。当你刚添加了一些翻译并希望在界面中查看结果时,可以在开发环境中显式运行它。

选项

  • --app 此参数允许你指定一个应用,以便只更新该应用的 PO 文件。默认值:所有应用。
  • --locale 此参数允许你指定一个语言区域,以便只更新该语言区域的 PO 文件。默认值:所有语言区域。
  • --force 强制重新编译,即使 PO 文件没有变化。

示例

编译 ERPNext 的德语翻译。

bench compile-po-to-mo --app erpnext --locale de

这会从 apps/erpnext/erpnext/locale/de.po 读取翻译并将其编译为二进制文件。结果保存到 sites/assets/locale/de/LC_MESSAGES/erpnext.mo。

更新采购订单文件

用法

bench update-po-files [OPTIONS]

前提条件

你的应用 locale 目录中已存在 POT 文件和 PO 文件。

说明

此命令会将你现有的翻译文件与现有的 POT 文件(包含所有可翻译字符串)同步。它会删除所有过时的字符串并添加新的字符串。

在你重新生成包含可翻译字符串的 POT 文件后,你会需要运行此命令。如果你使用的是专门的翻译管理平台,该平台可能也会为你处理这一步,这样你就不需要此命令了。

选项

  • --app 此参数让你指定一个应用,以便只更新该应用的 PO 文件。默认值:所有应用。
  • --locale 此参数让你指定一个语言区域,以便只更新该语言区域的 PO 文件。默认值:所有语言区域。

示例

将 ERPNext 的可翻译字符串与包含德语翻译的文件同步。

bench update-po-files --app erpnext --locale de

这会从 apps/erpnext/erpnext/locale/de.po 读取翻译,并从 apps/erpnext/erpnext/locale/main.pot 读取可翻译字符串。结果会保存到 apps/erpnext/erpnext/locale/de.po。

将CSV迁移到采购订单

用法

bench migrate-csv-to-po [OPTIONS]

前提条件

请确保你的应用已经有一个 POT 文件。如果没有,你可以生成一个。

说明

该命令会从 CSV 文件中读取你现有的翻译,将它们与现有的 POT 文件进行匹配,并将结果写入[app_module]/locale/[locale].po。

只有在从旧翻译系统切换到新翻译系统时,你才需要使用这个命令。

选项

  • --app 这个参数让你可以指定一个应用,以防你只想迁移某个应用的翻译。默认值:所有应用。
  • --locale 这个参数让你可以指定一个语言区域,以防你只想迁移某个语言区域的翻译。默认值:所有语言区域。

示例

将 ERPNext 的德语翻译从 CSV 迁移到 PO。

bench migrate-csv-to-po --app erpnext --locale de

这会从 apps/erpnext/erpnext/translations/de.csv 读取翻译,并从 apps/erpnext/erpnext/locale/main.pot 读取可翻译字符串。结果会保存到 apps/erpnext/erpnext/locale/de.po。如果你对结果满意,现在就可以删除 CSV 文件了。

生成pot文件

用法

bench generate-pot-file [OPTIONS]

描述

这会生成一个用于翻译的模板文件,包含某个应用的所有可翻译字符串(但不包含翻译内容)。该模板文件将被写入 [app_module]/locale/main.pot。

对于我们的许多应用,此命令会通过 GitHub Actions 定期自动运行。

选项

  • --app 如果你想只为某一个应用生成 POT 文件,可以用这个参数指定应用。默认值:所有应用。

示例

为 ERPNext 重新生成 POT 文件:

bench generate-pot-file --app erpnext

这会从 apps/erpnext 中提取所有可翻译字符串,并将它们写入 apps/erpnext/erpnext/locale/main.pot

工作台修剪台

用法

bench trim-tables [OPTIONS]

说明

从某个 DocType 中移除的文档字段可能不会从其
数据库表中删除。这是 Frappe 的刻意设计,以防止数据过早丢失。
大多数情况下这不会造成问题,但到了某个时候,你可能会因为
这些残留数据而遇到麻烦。

定期清理表的一些好处包括:

  • 更小的备份体积
  • 缩短站点备份所需时间
  • 减少站点数据库占用
  • 在 SELECT * 的情况下优化查询
  • 数据库干净整洁,没有隐藏或冗余的数据

此命令会修改你站点数据库中表的架构。默认情况下,它会在修改之前
对你的整个数据库进行完整备份。万一这些表
被错误地修改了,你可以使用恢复命令将站点
恢复到原始状态。

选项

  • --format、-f 设置输出格式。可用选项为 JSON 和 TEXT。
    默认为 TEXT。

标志

  • --dry-run 显示将要删除的内容
  • --no-backup 不备份站点。不建议这样做,因为这是一个
    破坏性操作。

示例

  1. 可能存在大量残留列占用空间。也许你是在自定义 DocType 时
    遇到行大小限制已达上限的错误,才发现了这个问题。为了
    确认没有任何幽灵列或旧的隐藏字段占用空间,你可以
    运行以下命令来确认
bench --site {site} trim-tables --dry-run

基准裁剪数据库

用法

bench trim-database [OPTIONS]

描述

从列表视图中删除 DocType 可能不会从数据库中删除它们对应的表。
迁移有时可能会在你的站点数据库中留下幽灵表。这样做可能是为了冗余、
在你的数据损坏或丢失时进行恢复,或者仅仅是因为人为错误。

此命令会删除任何看起来像是上述残留的表。在删除之前,它会尝试对这些表进行部分备份。
如果这些表是必需的,并且被错误地删除了,你可以使用 partial-restore 命令将它们恢复到你的站点数据库中。

选项

  • --format、-f 设置输出格式。可用选项为 JSON 和 Table。默认为 Table。

标志

  • --dry-run 显示将被删除的内容。
  • --no-backup 在清理之前不要备份站点。

示例

  1. 你想知道运行此命令会删除哪些数据吗?请使用
    --dry-run 标志运行它。
bench --site {site} trim-database --dry-run
  1. 想在此基础上构建,并且需要数据可被机器解析?将输出
    --format 设置为 json。
bench --site {site} trim-database --format json

基准转换数据库

此命令在 版本 14 中添加,且仅支持 MariaDB

用法

bench transform-database [OPTIONS] table

描述

transform-database 命令允许你管理站点表的设置。目前,你可以为站点数据库中的选定表切换存储引擎和行格式设置。

MariaDB 10.6 弃用了 COMPRESSED 行格式,而该格式长期以来一直是 Frappe 的默认选项。添加此命令是为了处理升级到更高版本 MariaDB 的情况。有关更多信息,请参阅 PR。

选项

  • --table 要转换的表的名称,以逗号分隔。要转换所有表,请传入 ‘all’ [必填]
  • --engine 为上述表选择存储引擎。可用选项为 InnoDB 和 MyISAM。
  • --row_format 为上述表设置 ROW_FORMAT 参数。可用选项为 DYNAMIC、COMPACT、REDUNDANT、COMPRESSED。

标志

  • failfast 在首次失败时退出

示例

  1. 假设你想将表 “tabAccess Record” 的引擎更改为 MyISAM。如果这是一个处理大量写入和极少读取的日志表,你可能会想这样做。
bench --site {site} transform-database --table 'tabAccess Record' --engine 'MyISAM'
  1. 你已将当前服务器上的 MariaDB 从 10.3 升级到 10.7,并且你想将所有使用 COMPRESSED 行格式的表转换为新的默认格式,即 DYNAMIC。你需要运行以下命令。
bench --site {site} transform-database --table 'all' --row_format 'DYNAMIC'

基准版本

用法

bench version [OPTIONS]

说明

version 命令会显示当前 bench 目录中所有已安装应用的编译信息。你可以选择自己喜欢的输出格式:纯文本、JSON 或 ASCII 表格。--format plain 选项会以纯文本形式显示版本信息,就像 bench version 一样,但会包含更多信息。

$ bench version --format plain
erpnext 14.0.3 version-14 (4e88dcf)
frappe 14.0.1 version-14 (f8ec3d7)

--format json 选项会以格式化 JSON 字符串的形式显示版本信息。如果你要在 bench CLI 之上构建工具,这会特别有用。

$ bench version --format json
[
 {
 "app": "erpnext",
 "branch": "version-14",
 "commit": "4e88dcf",
 "version": "14.0.3"
 },
 {
 "app": "frappe",
 "branch": "version-14",
 "commit": "ef0a5e9",
 "version": "14.0.1"
 }
]

--format table 选项会以 ASCII 表格的形式显示版本信息。

$ bench version --format table
+-------------------------+------------+------------------------------+---------+
| App | Version | Branch | Commit |
+-------------------------+------------+------------------------------+---------+
| erpnext | 14.0.3 | version-14 | 4e88dcf |
| frappe | 14.0.1 | version-14 | f8ec3d7 |
+-------------------------+------------+------------------------------+---------+

选项

  • -f、--format 选择显示当前 bench 中已安装应用版本的格式。可用选项有 “plain”、”table”、”json”、”legacy”。该值默认为 “legacy”。

示例

  1. 获取当前 bench 上已安装应用的人类可读信息,并包含提交消息。
bench version --format plain
  1. 以 JSON 格式获取 bench 版本信息。
bench version -f json

基准部分恢复

用法

bench partial-restore [OPTIONS] SQL_FILE_PATH

说明

你可能只想恢复已备份到某个站点的特定数据表。你很可能使用了 bench backup 中的 --only、--exclude 选项进行了部分备份。

partial-restore 命令可用于通过部分备份来恢复站点。部分备份文件可以是 gzip 压缩文件或纯 SQL 文件。本质上,你可以使用此命令从 SQL 文件中恢复任何内容。

参数

  • SQL_FILE_PATH 数据库源文件的路径。该路径可以是相对于 bench 目录根目录或 sites 文件夹的相对路径,也可以是绝对路径。

如需了解有关相对路径和绝对路径的更多信息,请在维基百科上点击此处。

选项

  • -v、--verbose 增加详细输出

示例

  1. 在站点上使用部分备份进行恢复。
bench --site {site} partial-restore -v {/path/to/sql/file}

基准恢复

用法

bench restore [OPTIONS] SQL_FILE_PATH

说明

Bench CLI 可用于将现有站点恢复到之前的状态。使用
bench restore 命令,可以通过指定的数据库和
文件恢复来还原站点。Frappe 站点不支持降级;当检测到降级时,
在站点恢复开始之前会弹出一个交互式提示。

执行恢复操作的最低要求是在本地文件系统上拥有数据库
文件。指定的路径可以是相对于 bench
或 sites 文件夹的路径,不过绝对路径通常效果最好。

指定的数据库备份文件可以具有 sql.gz 或 sql 扩展名。对于
公共和私有文件备份归档,默认是 tar,但自 版本
13
起,也支持扩展名为 tgz 的压缩归档。

注意:截至目前,无法使用此
命令仅恢复文件。

参数

  • SQL_FILE_PATH 数据库源文件的路径。该路径可以相对于
    bench 目录根或 sites 文件夹。也可以是绝对路径。

要了解有关相对路径和绝对路径的更多信息,请在 Wikipedia 上点击此处。

选项

  • --db-root-username MariaDB 或 Postgres 的 root 用户名
  • --db-root-password MariaDB 或 Postgres 的 root 密码
  • --db-name 站点数据库名称,如果它是新站点
  • --admin-password 新站点的管理员密码
  • --install-app 安装后安装应用
  • --with-public-files 恢复站点的公共文件,给定其
    归档文件的路径
  • --with-private-files 恢复站点的私有文件,给定其
    归档文件的路径

标志

  • --force 忽略站点降级警告(如果适用)。除非你完全了解
    后果,否则不推荐这样做

示例

  1. 使用文件恢复站点
bench --site {site} restore {path/to/database/file}
--with-public-files {path/to/public/archive}
--with-private-files {path/to/private/archive}
  1. 通过在选项中传递值来绕过 DBMS root 交互式提示
bench --site {site} restore {path/to/database/file}
--db-root-username {db-user}
--db-root-password {db-pass}
  1. 指定站点恢复后要安装的新应用
bench --site {site} restore {path/to/database/file}
--install-app {app}
  1. 为恢复的站点指定自定义数据库名称
bench --site {site} restore {path/to/database/file}
--db-name {custom-db-name}
  1. 重置恢复站点的管理员密码
bench --site {site} restore {path/to/database/file}
--admin-password {admin-pass}