docs: make Chinese README the default

This commit is contained in:
wehub-resource-sync
2026-07-13 10:21:58 +00:00
parent 81e416a3ce
commit 9f88beebfb
+72 -91
View File
@@ -1,98 +1,89 @@
# Doltgres is Dolt for Postgres!
<!-- WEHUB_ZH_README -->
> [!NOTE]
> 本文档由 WeHub 基于上游 README 翻译整理,属于社区翻译,非官方中文文档。
> [English](./README.en.md) · [原始项目](https://github.com/dolthub/doltgresql) · [上游 README](https://github.com/dolthub/doltgresql/blob/HEAD/README.md)
> 原作者、版权与许可证归属以原始项目及本仓库 LICENSE 文件为准。
# Doltgres 是面向 Postgres 的 Dolt
From the creators of [Dolt](https://www.doltdb.com), the world's first version controlled SQL
database, comes [Doltgres](https://www.doltgres.com), the Postgres-flavored version of Dolt. It's a
SQL database that you can branch and merge, fork and clone, push and pull just like a Git
repository. Connect to your Doltgres server just like any Postgres database to read or modify schema
and data. Version control functionality is exposed in SQL via system tables, functions, and
procedures.
来自 [Dolt](https://www.doltdb.com), 全球首个支持版本控制的 SQL
数据库的创作者,现推出 [Doltgres](https://www.doltgres.com), Dolt 的 Postgres 版本。这是一款 SQL
数据库,你可以像使用 Git 仓库一样对它进行分支(branch)与合并(merge)、复刻(fork)与克隆(clone)、推送(push)与拉取(pull)。你可以像连接任何 Postgres 数据库一样连接到 Doltgres 服务器来读取或修改 schema
和数据。版本控制功能通过 SQL 中的系统表、函数和存储过程公开。
Git versions file, Doltgres versions tables. It's like Git and Postgres had a baby.
Git 为文件做版本控制,Doltgres 为表做版本控制。它就像是 Git Postgres 的孩子。
# Doltgres is Beta
# Doltgres 处于 Beta 阶段
[Doltgres is now Beta quality](https://dolthub.com/blog/2025-04-16-doltgres-goes-beta/), which means
it's ready for your production use case. There will be bugs and missing features, but [we can fix
most of them in 24 hours](https://www.dolthub.com/blog/2024-05-15-24-hour-bug-fixes/) if you [file
an issue](https://github.com/dolthub/doltgresql/issues).
[Doltgres 现已达到 Beta 质量](https://dolthub.com/blog/2025-04-16-doltgres-goes-beta/), 这意味着
它已可用于你的生产场景。仍会有 bug 和功能缺失,但如果你 [提交 issue](https://github.com/dolthub/doltgresql/issues).
[我们大多能在 24 小时内修复](https://www.dolthub.com/blog/2024-05-15-24-hour-bug-fixes/)
The wait is over! Now is the time to [try out Doltgres](#getting-started) and let us know what you
think. Import your existing Postgres database into Doltgres with `pg_dump` and `psql`, and let us
know if anything doesn't work.
等待结束了!现在是 [试用 Doltgres](#getting-started) 并告诉我们你的想法的时候了。使用 `pg_dump``psql` 将你现有的 Postgres 数据库导入 Doltgres,如果有任何不工作的地方请告诉我们。
If you're excited about this project, you can also help speed it along in a few other ways:
如果你对这个项目感到兴奋,还可以通过以下几种方式帮助推动项目进展:
- Star this repo
- Create [issues](https://github.com/dolthub/doltgresql/issues) if you find bugs
- Create [issues](https://github.com/dolthub/doltgresql/issues) for missing functionality you want
- Contribute code for features you want (see the [Contribution
Guide](https://github.com/dolthub/doltgresql/blob/main/CONTRIBUTING.md))
- Tell your friends and colleagues
- 给本仓库点 Star
- 如果发现 bug,请创建 [issues](https://github.com/dolthub/doltgresql/issues)
- 为你想要但缺失的功能创建 [issues](https://github.com/dolthub/doltgresql/issues)
- 为你想要的功能贡献代码(参见 [贡献指南](https://github.com/dolthub/doltgresql/blob/main/CONTRIBUTING.md))
- 告诉你的朋友和同事
# Full Documentation
# 完整文档
Doltgres has a [documentation website](https://doltgres.com/docs) with extensive documentation.
Doltgres 拥有 [文档网站](https://doltgres.com/docs),其中包含大量文档。
# Installation
# 安装
To install Doltgres on Linx or Mac based systems run this command in your terminal:
要在基于 Linx Mac 的系统上安装 Doltgres,请在终端中运行以下命令:
```
sudo bash -c 'curl -L https://github.com/dolthub/doltgresql/releases/latest/download/install.sh | bash'
```
This will download the latest doltgres release and put it in `/usr/local/bin/`, which is probably on
your `$PATH`.
这将下载最新的 doltgres 发行版并将其放入 `/usr/local/bin/`,该路径很可能已在你的 `$PATH` 中。
## Windows
Download the latest Microsoft Installer (`.msi` file) in
[releases](https://github.com/dolthub/doltgresql/releases) and run it.
在 [releases](https://github.com/dolthub/doltgresql/releases) 下载最新的 Microsoft Installer`.msi` 文件)并运行。
## Docker
Doltgres publishes an official Docker image on every release:
Doltgres 在每次发布时都会提供官方 Docker 镜像:
* [dolthub/doltgresql](https://hub.docker.com/r/dolthub/doltgresql)
Run it on your local Docker like this:
在本地 Docker 中这样运行:
```bash
$ docker run -e DOLTGRES_PASSWORD=myPassword -p 5432:5432 dolthub/doltgresql:latest
```
## Building From Source
## 从源码构建
To produce a binary from source code, run `./scripts/build.sh`.
要从源码生成二进制文件,请运行 `./scripts/build.sh`
# Getting Started
# 快速入门
1. Run `doltgres`. This will create a `postgres` user and a `postgres` database in the current
directory. The default password will be `password`, just like in Postgres. You can use a
`config.yaml` file or set the `DOLTGRES_DATA_DIR` environment variable to use a different directory
for your databases.
1. 运行 `doltgres`。这将在当前目录中创建一个 `postgres` 用户和一个 `postgres` 数据库。默认密码为 `password`,与 Postgres 中一样。你可以使用 `config.yaml` 文件或设置 `DOLTGRES_DATA_DIR` 环境变量来为数据库使用不同的目录。
You can change the name and password of the super-user by setting the `DOLTGRES_USER` and
`DOLTGRES_PASSWORD` environment variables before running `doltgres` for the first time.
你可以在首次运行 `doltgres` 之前,通过设置 `DOLTGRES_USER``DOLTGRES_PASSWORD` 环境变量来更改超级用户的名称和密码。
```bash
$ doltgres
INFO[0000] Server ready. Accepting connections.
```
2. Install Postgres to get the `psql` tool. I used Homebrew to install Postgres on my Mac. This
requires I manually add `/opt/homebrew/opt/postgresql@15/bin` to my path. We only need Postgres in
order to use `psql`, so feel free to skip this step if you already have `psql`, or if you have
another Postgres client you use instead.
2. 安装 Postgres 以获取 `psql` 工具。我在 Mac 上使用 Homebrew 安装了 Postgres。 这需要我手动将 `/opt/homebrew/opt/postgresql@15/bin` 添加到 path。我们只需要 Postgres 来使用 `psql`,因此如果你已有 `psql`,或使用其他 Postgres 客户端,可以跳过此步骤。
```
export PATH="/opt/homebrew/opt/postgresql@15/bin:$PATH"
```
3. Open a new terminal. Connect with the following command: `PGPASSWORD=password psql -h localhost
-U postgres`. This will connect to the `postgres` database with the `postgres` user.
3. 打开新终端。使用以下命令连接:`PGPASSWORD=password psql -h localhost
-U postgres`. This will connect to the `postgres` database with the `postgres` 用户。
```bash
$ PGPASSWORD=password psql -h localhost
@@ -102,7 +93,7 @@ Type "help" for help.
postgres=>
```
4. Create a `getting_started` database. Create the `getting_started` example tables.
4. 创建一个 `getting_started` 数据库。创建 `getting_started` 示例表。
```sql
postgres=> create database getting_started;
@@ -146,7 +137,7 @@ getting_started=> \d
(3 rows)
```
5. Make a Dolt Commit.
5. 创建 Dolt Commit
```sql
getting_started=> select * from dolt.status;
@@ -177,7 +168,7 @@ getting_started=> select dolt_commit('-m', 'Created initial schema');
(1 row)
```
6. View the Dolt log.
6. 查看 Dolt 日志。
```sql
getting_started=> select * from dolt.log;
@@ -188,34 +179,29 @@ getting_started=> select * from dolt.log;
(2 rows)
```
7. Continue with [Dolt Getting Started](https://dolthub.com/docs/introduction/getting-started/database#insert-some-data)
to test out more Doltgres versioning functionality.
7. 继续阅读 [Dolt 快速入门](https://dolthub.com/docs/introduction/getting-started/database#insert-some-data)
以体验更多 Doltgres 版本控制功能。
# Limitations and differences from Dolt
# 与 Dolt 的限制和差异
- No [Git-style CLI](https://dolthub.com/docs/cli-reference/cli) for version control like in
[Dolt](https://github.com/dolthub/dolt), only a SQL interface.
- Can't push to DoltHub or DoltLab, only custom remotes (such as on the file system or to S3).
- Backup and replication are a work in progress.
- No GSSAPI support.
- No extension support yet.
- Some Postgres syntax, types, functions, and features are not yet implemented. If you encounter a
missing feature you need for your application, please [file an issue to let us
know](https://github.com/dolthub/doltgresql/issues).
- 没有像 [Dolt](https://github.com/dolthub/dolt), 中那样的 [Git 风格 CLI](https://dolthub.com/docs/cli-reference/cli) 来做版本控制,仅有 SQL 接口。
- 无法推送到 DoltHub 或 DoltLab,仅支持自定义 remote(例如文件系统或 S3)。
- 备份和复制功能仍在开发中。
- 不支持 GSSAPI。
- 尚不支持扩展。
- 部分 Postgres 语法、类型、函数和功能尚未实现。如果你遇到应用所需但缺失的功能,请 [提交 issue 告知我们](https://github.com/dolthub/doltgresql/issues).
# Performance
# 性能
Dolt is [1.1X slower than MySQL](https://dolthub.com/docs/sql-reference/benchmarks/latency) as
measured by a standard suite of Sysbench tests.
根据标准 Sysbench 测试套件衡量,Dolt 比 MySQL [慢 1.1 倍](https://dolthub.com/docs/sql-reference/benchmarks/latency)
We use these same Sysbench tests to benchmark DoltgreSQL and compare the results to PostgreSQL.
我们使用相同的 Sysbench 测试对 DoltgreSQL 进行基准测试,并将结果与 PostgreSQL 进行比较。
Here are the benchmarks for DoltgreSQL version `0.50.0`. All figures are median latency in
milliseconds.
以下是 DoltgreSQL 版本 `0.50.0` 的基准测试结果。所有数值均为以毫秒为单位的中位延迟。
<!-- START_LATENCY_RESULTS_TABLE -->
| Read Tests | Postgres | Doltgres | Multiple |
| 读取测试 | Postgres | Doltgres | 倍数 |
| --- | --- | --- | --- |
| covering_index_scan_postgres | 1.89 | 5.28 | 2.8 |
| groupby_scan_postgres | 5.28 | 46.63 | 8.8 |
@@ -230,8 +216,7 @@ milliseconds.
| types_table_scan_postgres | 43.39 | 292.6 | 6.7 |
| reads_mean_multiplier | | | 6.3 |
| Write Tests | Postgres | Doltgres | Multiple |
| 写入测试 | Postgres | Doltgres | 倍数 |
|------------------------------|----------|----------|----------|
| oltp_delete_insert_postgres | 2.22 | 6.79 | 3.1 |
| oltp_insert | 1.1 | 3.68 | 3.3 |
@@ -242,42 +227,38 @@ milliseconds.
| types_delete_insert_postgres | 2.3 | 7.04 | 3.1 |
| write_mean_multiplier | | | 3.6 |
| Overall Mean Multiple | 5.2 |
| 总体平均倍数 | 5.2 |
| --------------------- | --- |
<!-- END_LATENCY_RESULTS_TABLE -->
<br/>
# Correctness
# 正确性
Dolt is [100% compatible](https://dolthub.com/docs/sql-reference/benchmarks/correctness) with MySQL
based on a standard suite of correctness tests called `sqllogictest`.
Dolt 基于称为 `sqllogictest` 的标准正确性测试套件,[与 MySQL 100% 兼容](https://dolthub.com/docs/sql-reference/benchmarks/correctness)
We use these same tests to measure the correctness of DoltgreSQL.
我们使用相同的测试来衡量 DoltgreSQL 的正确性。
Here are DoltgreSQL's sqllogictest results for version `0.50.0`. Tests that did not run could not
complete due to a timeout earlier in the run.
以下是 DoltgreSQL 版本 `0.50.0` 的 sqllogictest 结果。未运行的测试是因为本次运行中更早阶段发生超时而无法完成。
<!-- START_CORRECTNESS_RESULTS_TABLE -->
| Results | Count |
| 结果 | 数量 |
| -- | -- |
| did not run | 91270 |
| not ok | 411415 |
| ok | 5188604 |
| timeout | 16 |
| Total Tests | 5691305 |
| 未运行 | 91270 |
| 失败 | 411415 |
| 通过 | 5188604 |
| 超时 | 16 |
| 测试总数 | 5691305 |
| Correctness Percentage | 91.16721 |
| 正确率 | 91.16721 |
| -- | -- |
<!-- END_CORRECTNESS_RESULTS_TABLE -->
<br/>
# Architecture
# 架构
Doltgres emulates a Postgres server, including parsing Postgres SQL into an Abstract Syntax Tree (AST). This AST is
converted to a form that can be interpreted by the Dolt engine. Doltgres uses the same SQL engine and storage format as Dolt.
Doltgres 模拟 Postgres 服务器,包括将 Postgres SQL 解析为抽象语法树(Abstract Syntax TreeAST)。该 AST 会被转换为 Dolt 引擎可解释的形式。Doltgres 使用与 Dolt 相同的 SQL 引擎和存储格式。
[Dolt has a unique architecture](https://dolthub.com/docs/architecture/architecture) that allows for version control
features at OLTP database performance. Doltgres uses the same architecture.
[Dolt 具有独特的架构](https://dolthub.com/docs/architecture/architecture),可在 OLTP 数据库性能级别支持版本控制功能。Doltgres 使用相同的架构。