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)。

典型工作流

  1. dolt init 初始化一个新仓库(为数据库创建一个文件夹)。
  2. 启动服务器:dolt sql-server。
  3. 使用任何 MySQL 客户端连接 (dolt -u root -p '' sql 或标准的 mysql 客户端)。
  4. 通过标准 SQL 创建/修改数据表。
  5. 使用 dolt_add (或 dolt add <tables>) 暂存变更,然后使用 dolt_commit -m "msg" 进行提交。
  6. 使用 dolt_log、dolt_diff_<table> 或 dolt_status 来检查历史,并使用 dolt merge 来合并分支。

项目强调的使用案例

  • 协作式数据科学与分析流水线。
  • 用于可重复研究的版本化数据集。
  • 多代理 AI 系统的代理记忆存储(README 称其为“代理记忆的最佳数据库”)。
  • 公开数据共享(例如 DoltHub 数据集目录)。

入门指南 – 通过提供的脚本、Homebrew、Docker 安装,或下载二进制文件;使用 dolt config 设置用户名/电子邮件;然后按照 README 中的快速入门指南来启动服务器、创建架构、提交变更并探索差异。


以上所有细节均直接取自该仓库的 README;未添加任何外部假设。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目