レビュー

GitHubっぽくデータベースのバージョン管理やホスティングができる「DoltHub」


ソースコードのバージョン管理システム「Git」やソースコードをホスティングする「GitHub」は、今やソフトウェア開発において欠かせない存在。そんなGitやGitHubでソースコードを管理するようにデータベースを管理できるのが「DoltHub」と「Dolt」です。

DoltHub
https://www.dolthub.com/

GitHub - liquidata-inc/dolt: Dolt – It's Git for Data
https://github.com/liquidata-inc/dolt

まずはDoltHubのアカウントを作成するため、トップページにアクセスして「Sign In」をクリック。


「Sign up for DoltHub」をクリックします。


記事作成時点では、アカウントの作成にGoogleアカウントとGitHubアカウントを利用可能。今回はGoogleアカウントを利用します。


Googleアカウントでログインしている場合はアカウントの選択画面が表示されるので、アカウント登録に使用したいアカウントを選択します。


DoltHubで利用したいユーザー名を入力する画面が表示されるので、ユーザー名を入力して「Submit」をクリック。


DoltHubのホーム画面が表示されました。これでDoltHubが利用可能な状態になりました。


続いて開発環境にDoltをインストールします。DoltHubのトップページへ戻って赤枠部分のボタンをクリックすると、Doltをインストールするためのコマンドをコピーすることができます。


コピーしたコマンドを開発環境で実行。今回は開発環境としてUbuntu 20.04を使用しています。スクリプトのダウンロードと実行が行われ、「/usr/local/bin」下にバイナリファイルが配置されます


Doltコマンドのオプションはこんな感じ。「commit」や「merge」「push」など、Gitでもなじみ深いオプションを利用することができます。


ひとまずDoltに利用するメールアドレスとユーザー名を設定。Gitと同じように設定することができます。


DoltHubと接続するため、下記コマンドを実行。

dolt login


コマンドを実行すると認証用のURLが表示されるので、ブラウザでアクセスします。


ブラウザでURLにアクセスすると、認証を追加する画面が表示されました。認証の説明を記入したら「Create」をクリック。


すると、コマンドラインの画面に認証が成功した旨のメッセージが表示されました。これで開発環境にインストールしたDoltからDoltHubにアクセスできるようになりました。


続いてDoltHubにてリポジトリを作成します。「Create New Repository」から、所有者やリポジトリの名前を入力して「Create repository」をクリック。なお、無料版ではパブリックリポジトリのみ作成可能です。


Doltでリモートリポジトリを設定するコマンドが表示されました。


表示されたコマンドをコマンドラインで実行すれば、リモートリポジトリを設定することができます。


これで開発環境はすべて整ったので、さっそくデータベースを作成していきます。DoltのGitHubページに「アメリカにある州別の人口」のデータベースを作成する方法が示されていたので、その例の通りに作成してみます。

まずはプロジェクトのディレクトリで下記コマンドを実行し、テーブルを作成します。「-q」オプションの後にSQL文を記述してデータベースを操作していきます。


dolt sql -q "create table state_populations ( state varchar(14), population int, primary key (state) )"


続いて下記コマンドでテーブルが作成できたかを確認。

dolt sql -q "show tables"


「state_population」という名前のテーブルが作成されていることが確認できました。


テーブルにレコードを追加していきます。

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


下記コマンドで「state」列が「New York」の行を表示させると……

dolt sql -q "select * from state_populations where state = 'New York'"


きちんと州の名前と人口が表示されました。


この時点でデータベースをmasterブランチにaddします。

dolt add .


ステータスを確認すると「新しいテーブルがaddされたのでcommitして下さい」という旨の表示が。


あとはmasterブランチのcommitをリモートリポジトリにプッシュすると……

dolt push origin master


DoltHubのページでデータベースが確認できるようになりました。


「My State」という州を新たに追加したくなったので、下記コマンドで追加します。

dolt sql -q 'INSERT INTO state_populations VALUES ("My State", 30000)'


下記コマンドでデータベースの変更箇所を確認すると……

dolt diff


追加したレコードがきちんと表示されました。


リモートリポジトリに変更を反映。


DoltHubで確認すると、追加したMy Stateのレコードが反映されていました。


左側のCommit Logを確認してみます。


こんな感じでcommitごとを比較して差分を確認することが可能。DoltHubには他にもPull Requestなどの機能もあるので、ソースコードを管理するようにデータベースを管理することができます。

この記事のタイトルとURLをコピーする

・関連記事
Pythonでコードを書いてAWSやKubernetesのシステム構成図を出力できる「Diagrams」 - GIGAZINE

データ分析や機械学習にバリバリ使える上にブラウザで使用できて環境構築不要のPython実行環境「Google Colaboratory」 - GIGAZINE

バージョン管理システム「Git」の使い方はどのように教えるのが良いのか? - GIGAZINE

AWSの膨大で複雑なサービス群をすべて「たった1行」で説明していくとこうなる - GIGAZINE

in レビュー,   ソフトウェア,   ネットサービス, Posted by darkhorse_log

You can read the machine translated English article here.