この記事は PlanetScale のクイックスタートガイドを個人的に和訳して、サンプルを実行した記録です。
はじめに
PlanetScale は、サーバーレスのデータベースです。公式では、日本語の対応がまだありません。
ざっくりとした話だと MySQL 互換のある Managed RDB サービス、ということになりますが、詳細はドキュメントを参照してみましょう。
PlanetScale クイックスタートガイド
Overview
つぎのガイドでは、PlanetScale を数分で始める方法を紹介します:
- PlanetScale のデータベースを作成する
- スキーマの変更
- データの挿入
- データベースのブランチを本番環境にプロモート(昇級のような意味に近い「切替」のこと)する
このガイドは、PlanetScale アプリケーション ダッシュボード(ブラウザ)、または、PlanetScale CLI を使用する2つの方法を別々に記述してあります。
PlanetScale アプリケーション ダッシュボード(ブラウザ)による操作
アカウントを作成する
アカウントを作成します。
メールアドレス、または、GitHub アカウントで登録できます。
データベースを作成する
最初のデータベースを作成するためには、次のステップで進めます:
- 「Create new organization」で新しい組織をつくって、「Create database」ボタンをクリック
- データベースの名前は、小文字の英数字(
-
と_
も OK)が使用可能 - リージョンを選択する。アプリケーションをホスティングロケーションと近いリージョンがおすすめ。
- 最後に「Create database」ボタンをクリック
作成したデータベースは、Overview で紹介した「スキーマの変更」と「データの挿入」で使用する、初期の開発ブランチ main
に作成してあります。
データベースにスキーマを追加する
作成した「organization」から作成したデータベースを選択し、ナビゲーションから「Branches」を選択します。これでデータベースのブランチのページを表示します。
main
ブランチを選択すると、main
ブランチのページが表示されます。
今度は「Console」タブを選択して、次のコマンドを実行してテーブルを作成してみます:
CREATE TABLE `users` ( `id` int NOT NULL AUTO_INCREMENT PRIMARY KEY, `email` varchar(255) NOT NULL, `first_name` varchar(255), `last_name` varchar(255) );
次のコマンドを実行することで、テーブルの作成コマンドを確認することができます:
SHOW TABLES;
データを挿入する
users
テーブルを作成したので、テーブルにデータを挿入することができます。
次のコマンドを実行して、テーブルにユーザーのデータを追加してみます:
INSERT INTO `users` (id, email, first_name, last_name) VALUES (1, 'hp@test.com', 'Harry', 'Potter');
次のコマンドを実行して、ユーザーのデータがテーブルに挿入されたかどうかを確認します:
SELECT * FROM users;
次のコマンドを実行して、スキーマを確認することができます:
DESCRIBE users;
「Schema」タブを選択して、「Refresh schema」ボタンを選択すると、さきほど作成した users
テーブルが表示されます。
データベースのブランチを本番環境にプロモート
PlanetScale にデータベースを作成したとき、main
という名前の(開発用)ブランチが自動的に作成されました。
開発用のブランチ (development branch) は、スキーマの変更を目的としているので、本番環境で使用することを意図していません。
本番用のブランチ (production branch) とは、本番環境で使用するために設計された自動スケジュールバックアップを備え、高可用性があり、保護されたデータベースのブランチです。
CREATE, ALTER, DELETE などのスキーマ変更は、不慮のデータ損失を防ぐため、本番用のブランチでは許可されていません。
開発用ブランチで作ったデータベースの内容に満足できたら、本番用ブランチにプロモートさせましょう。
ブランチを本番用にプロモートさせるには:
- 「Overview」をクリックして、「Promote to production」に関する情報が書かれたバナーを表示
- 「Promote branch」のボタンを選択
- 開かれる画面で本番用にプロモートしたいブランチを選択(つまり
main
) - 再び「Promote branch」のボタンを選択すれば、開発用ブランチから本番用ブランチへのプロモートは完了
これで開発用ブランチの本番環境へのプロモートは完了です。これによって、次のメリットがあります:
- スキーマの直接変更を保護できる
- 高可用性を得る
- 毎日の自動バックアップをスケジュール
次にやることは?
データベースを作成し、スキーマの変更を適用し、データを挿入し、ブランチを本番環境に移行できたら、次はアプリケーションに接続しましょう。
一般的な step-by-step なアプローチだと「Connect Any Application チュートリアル」を参照します。接続文字列の作成については、「Connection Strings」を参照します。
PlanetScale CLI による操作
まず、PlanetScale CLI をダウンロード&インストールします。
Windows 版 scoop で設定するなら PowerShell を使って次のコマンドです:
scoop bucket add pscale https://github.com/planetscale/scoop-bucket.git scoop install pscale mysql
アップデートしたいときは:
scoop update pscale
scoop ダウンロード方法の補足 (Windows)
[scoop] は Windows 版の Homebrew みたいなもので、アプリのパッケージ管理です。
scoop 自体のインストールには、PowerShell を起動して、次のコマンドを実行します:
Invoke-Expression (New-Object System.Net.WebClient).DownloadString('https://get.scoop.sh') # or shorter iwr -useb get.scoop.sh | iex
PowerShell requires an execution policy in [Unrestricted, RemoteSigned, ByPass] to run Scoop.
のようなメッセージが出る場合は、下記コマンドで権限を設定します。
Set-ExecutionPolicy RemoteSigned -scope CurrentUser
アカウントを作成する
PlanetScale のアカウントを作成します。すでにアカウントがある場合はログインするか、CLI からアカウントを直接作成することができます。
アカウントを新規登録する場合は、ターミナルで次のコマンドを実行します:
pscale signup
メールアドレス、パスワードの入力します。登録を完了するためには、E-mail のアカウント認証を忘れないこと。
アカウントにサインインする
CLIでアカウントにログイン(サインイン)するときは、次のコマンドです:
pscale auth login
ブラウザに PlanetScale の認証画面に ID が表示されます。PowerShell に表示される ID と一致することを確認してから「Confirm code」を選択します。
ログインに成功したら、ブラウザの認証画面を閉じます。以上で、ターミナル (PowerShell) で操作を進めることができるようになりました。
データベースを作成する
PlanetScale にログインできたら、データベースを作成することができます。
次のコマンドを実行して、データベースを作成します。
pscale database create databasename --region regionslug # sample pscale database create users2 --region ap-northeast
- databasename - データベースの名前
- regionslug - リージョンの名前(調べる)
リージョンを指定しなかった場合は、US East - Northern Virginia が選択されます。
データベースはやはり main
ブランチに作成されます。(Organization はデフォルトです)
データベースにスキーマを追加する
データベースにスキーマを追加するためには、pscale シェルを使用して、MySQL に接続します。次のコマンドを実行します:
pscale shell databasename main
これで main
ブランチに接続して、MySQL クエリーを実行できます。次のコマンドを実行して、テーブルを作成します:
CREATE TABLE `users` ( `id` int NOT NULL AUTO_INCREMENT PRIMARY KEY, `email` varchar(255) NOT NULL, `first_name` varchar(255), `last_name` varchar(255) );
次のコマンドを実行することで、テーブルの作成コマンドを確認することができます:
SHOW TABLES;
データを挿入する
次のコマンドを実行して、テーブルにユーザーのデータを追加してください:
INSERT INTO `users` (id, email, first_name, last_name) VALUES (1, 'hp@test.com', 'Harry', 'Potter');
次のコマンドを実行して、ユーザーのデータがテーブルに追加されたことを確認します:
SELECT * FROM users;
次のコマンドを実行して、スキーマを確認することができます:
DESCRIBE users;
CLI で実行した内容は、PlanetScale アプリケーション ダッシュボード(ブラウザ)からも確認することができます。
次にやることは?
データベースを作成し、スキーマの変更を適用し、データを挿入し、ブランチを本番環境に移行できたら、次はアプリケーションに接続しましょう。
一般的な step-by-step なアプローチだと「Connect Any Application チュートリアル」を参照します。接続文字列の作成については、「Connection Strings」を参照します。