dolthub/dolt
Dolt – Git for Data
Dolt – 针对 SQL 数据的 Git 风格版本控制
它是什么 – Dolt 是一款关系型数据库(兼容 MySQL),它将数据表视为 Git 仓库中的文件。你可以使用与 Git 相同的命令来 fork、clone、branch、merge、push、pull 以及 commit 数据和架构的变更,这些操作既可以通过命令行工具 (dolt) 完成,也可以通过 SQL 系统表、函数和存储过程实现。
为什么重要 – 传统数据库只保留单一且可变的状态。Dolt 增加了 时间回溯 (time-travel) 和 协作 能力:每一次变更都会被记录为一个 commit,你可以查看差异 (diffs)、解决合并冲突,并回滚到历史中的任何时间点。这使得它对于以数据为中心的工作流非常有用,例如协作式分析、可重复研究,以及对 AI 而言至关重要的 代理记忆 (agent memory),让多个代理程序能够共享一个具备版本控制的知识库。
主要功能
- 类 Git 的 CLI –
init、add、commit、branch、merge、push、pull等命令,现在操作的是数据表而非文件。 - SQL 级别的版本控制 – 通过
dolt_log、dolt_status等系统表,以及dolt_add、dolt_commit等存储过程,在任何 MySQL 客户端中皆可使用相同功能。 - 兼容 MySQL 的服务器 –
dolt sql-server运行于标准 MySQL 端口 (3306);任何 MySQL 客户端皆可连接。 - 完整的关系型功能 – 支持外键、索引、触发器、检查约束、存储过程,以及最多十二个表的 JOIN。
- 托管选项 – 通过 DoltHub 公开分享、自建 DoltLab,或使用全托管的 Hosted Dolt。此外也提供兼容 PostgreSQL 的前端 (Doltgres)。
- 跨平台安装 – 提供二进制文件 (~103 MB)、Homebrew、Arch、Chocolatey、Docker 镜像,或从源码编译 (Go + cgo)。
典型工作流
dolt init初始化一个新仓库(为数据库创建一个文件夹)。- 启动服务器:
dolt sql-server。 - 使用任何 MySQL 客户端连接 (
dolt -u root -p '' sql或标准的mysql客户端)。 - 通过标准 SQL 创建/修改数据表。
- 使用
dolt_add(或dolt add <tables>) 暂存变更,然后使用dolt_commit -m "msg"进行提交。 - 使用
dolt_log、dolt_diff_<table>或dolt_status来检查历史,并使用dolt merge来合并分支。
项目强调的使用案例
- 协作式数据科学与分析流水线。
- 用于可重复研究的版本化数据集。
- 多代理 AI 系统的代理记忆存储(README 称其为“代理记忆的最佳数据库”)。
- 公开数据共享(例如 DoltHub 数据集目录)。
入门指南 – 通过提供的脚本、Homebrew、Docker 安装,或下载二进制文件;使用 dolt config 设置用户名/电子邮件;然后按照 README 中的快速入门指南来启动服务器、创建架构、提交变更并探索差异。
以上所有细节均直接取自该仓库的 README;未添加任何外部假设。
相关
- 项目
- 项目
- 项目
- 项目
- 项目