什么是 dolt?

Dolt 是一個 SQL 數據庫,您可以像 git 存儲庫一樣分叉、克隆、分支、合并、推送和拉取。像任何 MySQL 數據庫一樣連接到 Dolt 以使用 SQL 命令運行查詢或更新數據,使用 Golang 語言編寫。

它與 MySQL 關系型數據庫一樣,具有表、視圖等概念,支持數據的增刪改查等操作。并且它提供了一個命令行工具,完美支持所有的 git 命令。

快速使用

  • 安裝最新版 polt
或者下載二進制,并加入到 PATH 中
sudo bash -c 'curl -L https://github.com/dolthub/dolt/releases/latest/download/install.sh | bash'
  • 配置 dolt
配置用戶名和郵箱,與 git 配置類似
dolt config --global --add user.email YOU@DOMAIN.COM
dolt config --global --add user.name "YOUR NAME"
image-20220718105123725
  • 設置數據存儲目錄
mkdir -p test/dolt
cd test/dolt
  • 啟動 sql-server 服務
dolt sql-server

  • 使用 sql-client 連接到 sql 服務
NOTICE: Dolt 同樣支持任何與 MySQL 兼容的客戶端,Dolt 也附帶一個客戶端。
dolt sql-client
  • 創建數據庫以及表
create database getting_started;
use getting_started;
create table employees (
    id int, 
    last_name varchar(255), 
    first_name varchar(255), 
    primary key(id));
image-20220718111113870

  • 提交初始化表
call dolt_add('employees');
call dolt_commit('-m', 'Created initial schema');
image-20220718111434369

  • 插入數據并查看表狀態
insert into employees values 
    (0, 'Sehn', 'Tim'), 
    (1, 'Hendriks', 'Brian'), 
    (2, 'Son','Aaron'), 
    (3, 'Fitzgerald', 'Brian');
select * from dolt_status;

  • 提交插入的數據并查看表狀態

  • 對數據進行 reset 操作
模擬回滾的操作,如不小心把表刪掉了,導致數據全部丟失,此時可以使用 reset 回滾數據。
drop table employees;
call dolt_reset('--hard');

總結

結合 mysql 與 git 的特性,dolt 可謂是想法新奇,提供了未來數據庫的新思路。