Dolt es una base de datos SQL que puedes clonar, bifurcar, fusionar, empujar o extraer como si de un repositorio de git se tratase.
Puedes conectarte a Dolt como a cualquier base de datos MySQL, siempre que necesites ejecutar o actualizar los datos usando comandos SQL o bien, si requieres realizar consultas dentro de la propia base de datos.
Puedes utilizar la interfaz de línea de comandos para importar archivos CSV, confirmar tus cambios, enviarlos a través de control remoto o fusionar cambios con compañeros de trabajo.
Todos los comandos que conoces para Git funcionan exactamente igual para Dolt. Los archivos de versiones de Git, se convierten en tablas de versiones de Dolt.
¡Dol, es exactamente como si Git y MySQL hubiesen tenido un bebé! ?
Además, los creadores del proyecto de Dolt, también han creado DoltHub, un lugar en el que compartir las bases de datos de Dolt.
Por lo que, ¡Vas a poder hospedar tus datos de forma pública y gratuita!
Los comandos válidos para dolt son los siguientes.
Para instalar en sistemas basado en Linux o Mac, ejecute este comando en su terminal:
sudo bash -c 'curl -L https://github.com/dolthub/dolt/releases/latest/download/install.sh | bash'
Esto descargará la última doltversión y la colocará /usr/local/bin/, que probablemente esté en su archivo $PATH.
Dolt está en Homebrew, actualizado en cada lanzamiento.
brew install dolt
Descargar la última Microsoft Installer (el archivo .msi) en los comunicados y ejecutarlo. ¡Próximamente lanzamientos del administrador de paquetes!
Para obtener información sobre la ejecución en Windows, consulta aquí .
Asegúrate de tener Go instalado, y con go. Clona el repositorio y cd en el directorio de go. Entonces corre:
go install ./cmd/dolt
Verifica que la instalación se haya realizado correctamente ejecutando el comando dolten la terminal.
$ dolt
Valid commands for dolt are
[...]
Configura doltcon tu nombre de usuario y correo electrónico, los mismos datos que vas a necesitar para crear «commits». Los comandos funcionan exactamente igual que en git.
$ dolt config --global --add user.email tu@dominio.COM
$ dolt config --global --add user.name "tu nombre"
Creamos nuestro primer repositorio, por ejemplo, almacenando datos de población del estado.
$ mkdir state-pops
$ cd state-pops
Ejecuta dolt init para configurar un nuevo repositorio en dolt tal y como lo harías en git. Luego, ejecuta algunas consultas SQL para insertar los datos.
$ dolt init
Successfully initialized dolt data repository.
$ dolt sql -q "create table state_populations ( state varchar(14), population int, primary key (state) )"
$ dolt sql -q "show tables"
+-------------------+
| tables |
+-------------------+
| state_populations |
+-------------------+
$ dolt sql -q "insert into state_populations (state, population) values
('Delaware', 59096),
('Maryland', 319728),
('Tennessee', 35691),
('Virginia', 691937),
('Connecticut', 237946),
('Massachusetts', 378787),
('South Carolina', 249073),
('New Hampshire', 141885),
('Vermont', 85425),
('Georgia', 82548),
('Pennsylvania', 434373),
('Kentucky', 73677),
('New York', 340120),
('New Jersey', 184139),
('North Carolina', 393751),
('Maine', 96540),
('Rhode Island', 68825)"
Query OK, 17 rows affected
Puedes usar dolt sqlpara saltar a un shell SQL o ejecutar consultas únicas con la opción -q.
$ dolt sql -q "select * from state_populations where state = 'New York'"
+----------+------------+
| state | population |
+----------+------------+
| New York | 340120 |
+----------+------------+
Agregar las nuevas tablas con add y lanzar agregados con commit, cada comando coincide exactamente con los comandos de git pero con tablas en lugar de archivos.
$ dolt add .
$ dolt commit -m "initial data"
$ dolt status
On branch master
nothing to commit, working tree clean
Actualiza las tablas con los demás comandos de SQL, pero está vez utilizando el shell:
$ dolt sql
# Welcome to the DoltSQL shell.
# Statements must be terminated with ';'.
# "exit" or "quit" (or Ctrl-D) to exit.
state_pops> update state_populations set population = 0 where state like 'New%';
Query OK, 3 rows affected
Rows matched: 3 Changed: 3 Warnings: 0
state_pops> exit
Bye
Puedes ver los cambios con dolt diff:
$ dolt diff
diff --dolt a/state_populations b/state_populations
--- a/state_populations @ qqr3vd0ea6264oddfk4nmte66cajlhfl
+++ b/state_populations @ 17cinjh5jpimilefd57b4ifeetjcbvn2
+-----+---------------+------------+
| | state | population |
+-----+---------------+------------+
| < | New Hampshire | 141885 |
| > | New Hampshire | 0 |
| < | New Jersey | 184139 |
| > | New Jersey | 0 |
| < | New York | 340120 |
| > | New York | 0 |
+-----+---------------+------------
Confirma los cambios una vez más con dolt addy dolt commit.
$ dolt add state_populations
$ dolt commit -m "More like Old Jersey"
Puedes ver el historial del repositorio con dolt log.
% dolt log
commit babgn65p1r5n36ao4gfdj99811qauo8j
Author: Zach Musgrave <zach@dolthub.com>
Date: Wed Nov 11 13:42:27 -0800 2020
More like Old Jersey
commit 9hgk7jb7hlkvvkbornpldcopqh2gn6jo
Author: Zach Musgrave <zach@dolthub.com>
Date: Wed Nov 11 13:40:53 -0800 2020
initial data
commit 8o8ldh58pjovn8uvqvdq2olf7dm63dj9
Author: Zach Musgrave <zach@dolthub.com>
Date: Wed Nov 11 13:36:24 -0800 2020
Initialize data repository
Si tienes datos en archivos planos como CSV o JSON, puedes importarlos usando el comando dolt table import. Usa dolt table import -u para agregar datos a una tabla ya existente o dolt table import -c si deseas crear una nueva.
$ head -n3 data.csv
state,population
Delaware,59096
Maryland,319728
$ dolt table import -c -pk=state state_populations data.csv
Al igual que con git, es una buena idea realizar los cambios en tu propia rama y luego fusionarlos con la rama master. El comando dolt checkout funciona exactamente igual que git checkout.
$ dolt checkout -b <branch>
El comando merge también funciona igual.
$ dolt merge <branch>
Dolt admite controles remotos como git, los controles remotos se configuran automáticamente cuando clonas los datos.
$ dolt clone dolthub/corona-virus
...
$ cd corona-virus
$ dolt remote -v
origin https://doltremoteapi.dolthub.com/dolthub/corona-virus
Para enviar a un control remoto, necesitarás las credenciales necesarias. Ejecutando dolt login podrás abrir un navegador para iniciar sesión y almacenar en caché tus credenciales locales.
Puede iniciar sesión en DoltHub con tu cuenta de Google, tu cuenta de Github o con un nombre de usuario y contraseña.
$ dolt login
Si tiene un repositorio que creó localmente y ahora desea enviarlo a un control remoto, agregue un control remoto exactamente como lo haría con git.
$ dolt remote add origin myname/myRepo
$ dolt remote -v
origin https://doltremoteapi.dolthub.com/myname/myRepo
Y luego empújalo.
$ dolt push origin master
dolt también admite controles remotos basados en directorio, aws y gcs:
dolt remote add <remote> file:///Users/xyz/abs/path/
dolt remote add <remote> aws://dynamo-table:s3-bucket/database
dolt remote add <remote> gs://gcs-bucket/database
DoltHub tiene muchos conjuntos de datos interesantes para explorar y clonar. Estos son algunos de nuestros favoritos.
¡Hay mucho más en Dolt de lo que cabe en un archivo README! Para obtener la documentación completa, consulte los documentos en DoltHub . Algunos de los temas que no cubrimos aquí:
La biografía más vendida del cofundador de Apple, Steve Jobs; escrita por uno de los…
Hubo un tiempo en el que la “seguridad en el hogar” significaba confiar en un…
Elon Musk vuelve a romper todos los esquemas. Los accionistas de Tesla acaban de aprobar…
Los fans de Grand Theft Auto tendrán que esperar un poco más para volver a…
Five Nights at Freddy’s: Into the Pit nos sumerge en un misterioso mundo donde lo…
Adéntrate en el oscuro y retorcido mundo de Bendy and the Ink Machine, donde los…