Zenn
💫

SolarSystemDB - Universal Serverless Database | クイックスタートガイド

2025/01/20に公開

導入

世の中データベースサービス(DBaaS)は様々ありますが、以下のような機能を持っているものは少ないかと思われます。それはブランチング機能です。例:PlanetScale

私はPlanetScaleくらいしか知らなかったのですが、GPT-o1に聞いたら他にもこんなサービスがあるみたいです。

https://planetscale.com/

https://neon.tech

https://xata.io/

他にも似たような機能を持つものはあるようですが、私が調べた限りではこれくらいでした。
中でも無料プランから始められるものは、NeonとXataくらいになってしまい、Postgres以外の選択肢がない状況です。また、いずれもAWSインフラの上に構築されている点も選択圧を抱える状況です。

そんな中、この度Cloudflare D1を用いたSQLiteベースの新たなDBaaSを開発しました。
その名もSolarSystemDBです。

SolarSystem

https://solarsystemdb.com

SolarSystemは無料から始められる数々の機能を備えた次世代のDBaaSです。
具体的には以下のような機能を備えています。

  • 複数人で共同してデータベースを開発するチーム機能
  • データベースを複数のブランチに切り分けて管理できるクラスター・ブランチ機能
  • 過去30日以内の任意の時間にブランチの状態を巻き戻せるTime Travel ロールバック機能
  • あらゆるプラットフォームから即座にアクセスできるHTTP API

なお、現在SolarSystemはベータ版です。
バグや不具合等発見したら以下のリンクから報告していただけるととっても助かります。
(意見・フィードバックも歓迎です!)

https://suwasystem.com/contact

では使用するためのクイックスタートガイドを初めていきます。

サインアップ

エントランス画面

まずは「使用を開始する」ボタンをクリックしてスタートします。

ログイン画面

ログイン画面からサインアップします。
GitHub・Googleアカウントでログインすればサインアップをスキップしてソーシャルログインが可能です。

Sign upリンクをクリックし、メールアドレスとパスワードを設定します。

Email-Pass

2段階認証が求められるので、GoogleAuthenticatorなどを使って設定します。

2FA

バックアップコードが提示されるので安全な場所に保管します。
(2FAデバイスを失った際に必要です)

2FA Backup

こんな感じの画面になればログイン成功です。
テーマや言語を変える際は右上のアイコンから変更します。

Top Page

チームの作成

データベースの使用にはまずチームと呼ばれるユーザーグループを作る必要があります。
ページ中程の「新しいチームを作成」リンクをクリックします。

するとこのような画面になるのでチーム名を入力して「チームを作成」をクリックします。

New Team Page

なお、チーム名には以下のような制約があります。

  • チーム名はグローバルに一意である必要がある必要があります。
    (他のユーザーが作ったチーム名と被ってはいけない)
  • チーム名は後から変更できません。
  • チーム名に使用できる文字はa-z,A-Z,0-9,-_です。

チームを作成するとこのような画面になると思います。
ここでは、チームが使用しているプランとDB使用量のサマリーが見れます。

Team Page

クラスターの作成

次にクラスターを作成します。
1つのクラスターは1つのデータベースとして扱われます。
クラスタータブを選択し、右上の「新規クラスター」をクリックします。

Cluster Tab

するとこのような画面になるのでクラスター名を入力して「クラスターを作成」をクリックします。

New Cluster Page

なお、クラスター名にも以下のような制約があります。

  • クラスター名はチーム内で一意である必要がある必要があります。
    (チーム内の他のクラスター名と被ってはいけない)
  • クラスター名は後から変更できません。
  • クラスター名に使用できる文字はa-z,A-Z,0-9,-_です。

クラスターを作成するとこのような画面になると思います。
ここでは、クラスターのサマリーが見れます。
(2025/01/20 現在はクラスタの作成者のみ見れます)

New Cluster Page

ブランチの作成

次にブランチを作成します。
1つのブランチは1つのクラスタ内のバージョンとして扱われます。
ブランチタブを選択し、左下の「+」をクリックします。

New Branch Page

ここではGitのブランチ作成と同じようにベースブランチを選択して新たなブランチを作成することができます。(ベースブランチを選択しないことも可能)
まずは、mainブランチをベースにdevブランチを作成しましょう。
ブランチ名を入力して、「ブランチを作成」ボタンをクリックします。

New Branch Dev

なお、ブランチ名にも以下のような制約があります。

  • ブランチ名はクラスター内で一意である必要がある必要があります。
    (チーム内の他のブランチ名と被ってはいけない)
  • ブランチ名は後から変更できません。
  • ブランチ名に使用できる文字はa-z,A-Z,0-9,-_です。

SQL実行

最後に、ブランチに対してSQLを実行してみます。
「ブランチ」タブに移動して、「dev」タブを選択します。

dev Branch

「SQLを入力...」と表示されているところにSQLiteクエリを入力します。

例:

CREATE TABLE planet (id INTEGER PRIMARY KEY, name TEXT);

Query Result

クエリ結果がコンソールに表示され、右側のテーブル一覧が更新されました。
一方mainブランチはdevブランチから切り離されているので、何もテーブルはありません。

main Branch

まとめ

一旦今回は、ここまでとします。
次回以降、ステージングやチームロール・APIなどについて書いていきたいと思います。

デザインセンス皆無の個人開発者なのでUI・UXは競合と見劣りする部分がありますが、機能面では使用していただける方々の期待に応えられるよう、これからも開発を続けていきます。
少しでも興味を持っていただけたら、是非触ってみて下さい。

https://solarsystemdb.com

Discussion

ログインするとコメントできます