SolarSystemDB - Universal Serverless Database | クイックスタートガイド
導入
世の中データベースサービス(DBaaS)は様々ありますが、以下のような機能を持っているものは少ないかと思われます。それはブランチング機能です。例:PlanetScale
私はPlanetScaleくらいしか知らなかったのですが、GPT-o1に聞いたら他にもこんなサービスがあるみたいです。
他にも似たような機能を持つものはあるようですが、私が調べた限りではこれくらいでした。
中でも無料プランから始められるものは、NeonとXataくらいになってしまい、Postgres以外の選択肢がない状況です。また、いずれもAWSインフラの上に構築されている点も選択圧を抱える状況です。
そんな中、この度Cloudflare D1を用いたSQLiteベースの新たなDBaaSを開発しました。
その名もSolarSystemDBです。
SolarSystem
SolarSystemは無料から始められる数々の機能を備えた次世代のDBaaSです。
具体的には以下のような機能を備えています。
- 複数人で共同してデータベースを開発するチーム機能
- データベースを複数のブランチに切り分けて管理できるクラスター・ブランチ機能
- 過去30日以内の任意の時間にブランチの状態を巻き戻せるTime Travel ロールバック機能
- あらゆるプラットフォームから即座にアクセスできるHTTP API
なお、現在SolarSystemはベータ版です。
バグや不具合等発見したら以下のリンクから報告していただけるととっても助かります。
(意見・フィードバックも歓迎です!)
では使用するためのクイックスタートガイドを初めていきます。
サインアップ
まずは「使用を開始する」ボタンをクリックしてスタートします。
ログイン画面からサインアップします。
GitHub・Googleアカウントでログインすればサインアップをスキップしてソーシャルログインが可能です。
Sign upリンクをクリックし、メールアドレスとパスワードを設定します。
2段階認証が求められるので、GoogleAuthenticatorなどを使って設定します。
バックアップコードが提示されるので安全な場所に保管します。
(2FAデバイスを失った際に必要です)
こんな感じの画面になればログイン成功です。
テーマや言語を変える際は右上のアイコンから変更します。
チームの作成
データベースの使用にはまずチームと呼ばれるユーザーグループを作る必要があります。
ページ中程の「新しいチームを作成」リンクをクリックします。
するとこのような画面になるのでチーム名を入力して「チームを作成」をクリックします。
なお、チーム名には以下のような制約があります。
- チーム名はグローバルに一意である必要がある必要があります。
(他のユーザーが作ったチーム名と被ってはいけない) - チーム名は後から変更できません。
- チーム名に使用できる文字はa-z,A-Z,0-9,-_です。
チームを作成するとこのような画面になると思います。
ここでは、チームが使用しているプランとDB使用量のサマリーが見れます。
クラスターの作成
次にクラスターを作成します。
1つのクラスターは1つのデータベースとして扱われます。
クラスタータブを選択し、右上の「新規クラスター」をクリックします。
するとこのような画面になるのでクラスター名を入力して「クラスターを作成」をクリックします。
なお、クラスター名にも以下のような制約があります。
- クラスター名はチーム内で一意である必要がある必要があります。
(チーム内の他のクラスター名と被ってはいけない) - クラスター名は後から変更できません。
- クラスター名に使用できる文字はa-z,A-Z,0-9,-_です。
クラスターを作成するとこのような画面になると思います。
ここでは、クラスターのサマリーが見れます。
(2025/01/20 現在はクラスタの作成者のみ見れます)
ブランチの作成
次にブランチを作成します。
1つのブランチは1つのクラスタ内のバージョンとして扱われます。
ブランチタブを選択し、左下の「+」をクリックします。
ここではGitのブランチ作成と同じようにベースブランチを選択して新たなブランチを作成することができます。(ベースブランチを選択しないことも可能)
まずは、mainブランチをベースにdevブランチを作成しましょう。
ブランチ名を入力して、「ブランチを作成」ボタンをクリックします。
なお、ブランチ名にも以下のような制約があります。
- ブランチ名はクラスター内で一意である必要がある必要があります。
(チーム内の他のブランチ名と被ってはいけない) - ブランチ名は後から変更できません。
- ブランチ名に使用できる文字はa-z,A-Z,0-9,-_です。
SQL実行
最後に、ブランチに対してSQLを実行してみます。
「ブランチ」タブに移動して、「dev」タブを選択します。
「SQLを入力...」と表示されているところにSQLiteクエリを入力します。
例:
CREATE TABLE planet (id INTEGER PRIMARY KEY, name TEXT);
クエリ結果がコンソールに表示され、右側のテーブル一覧が更新されました。
一方mainブランチはdevブランチから切り離されているので、何もテーブルはありません。
まとめ
一旦今回は、ここまでとします。
次回以降、ステージングやチームロール・APIなどについて書いていきたいと思います。
デザインセンス皆無の個人開発者なのでUI・UXは競合と見劣りする部分がありますが、機能面では使用していただける方々の期待に応えられるよう、これからも開発を続けていきます。
少しでも興味を持っていただけたら、是非触ってみて下さい。
Discussion