sh1’s diary

プログラミング、読んだ本、資格試験、ゲームとか私を記録するところ

PlanetScale のクイックスタートガイド

f:id:shikaku_sh:20220122172122p:plain

この記事は PlanetScale のクイックスタートガイドを個人的に和訳して、サンプルを実行した記録です。

はじめに

PlanetScale は、サーバーレスのデータベースです。公式では、日本語の対応がまだありません。

ざっくりとした話だと MySQL 互換のある Managed RDB サービス、ということになりますが、詳細はドキュメントを参照してみましょう。

PlanetScale クイックスタートガイド

Overview

つぎのガイドでは、PlanetScale を数分で始める方法を紹介します:

  • PlanetScale のデータベースを作成する
  • スキーマの変更
  • データの挿入
  • データベースのブランチを本番環境にプロモート(昇級のような意味に近い「切替」のこと)する

このガイドは、PlanetScale アプリケーション ダッシュボード(ブラウザ)、または、PlanetScale CLI を使用する2つの方法を別々に記述してあります。

PlanetScale アプリケーション ダッシュボード(ブラウザ)による操作

アカウントを作成する

アカウントを作成します。

メールアドレス、または、GitHub アカウントで登録できます。

データベースを作成する

最初のデータベースを作成するためには、次のステップで進めます:

  • 「Create new organization」で新しい組織をつくって、「Create database」ボタンをクリック
  • データベースの名前は、小文字の英数字(-_ も OK)が使用可能
  • リージョンを選択する。アプリケーションをホスティングロケーションと近いリージョンがおすすめ。
  • 最後に「Create database」ボタンをクリック

f:id:shikaku_sh:20220122172228p:plain:w500

f:id:shikaku_sh:20220122172247p:plain

作成したデータベースは、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;

f:id:shikaku_sh:20220122172353p:plain:w500

データを挿入する

users テーブルを作成したので、テーブルにデータを挿入することができます。

次のコマンドを実行して、テーブルにユーザーのデータを追加してみます:

INSERT INTO `users` (id, email, first_name, last_name)
VALUES  (1, 'hp@test.com', 'Harry', 'Potter');

次のコマンドを実行して、ユーザーのデータがテーブルに挿入されたかどうかを確認します:

SELECT * FROM users;

f:id:shikaku_sh:20220122172414p:plain:w500

次のコマンドを実行して、スキーマを確認することができます:

DESCRIBE users;

f:id:shikaku_sh:20220122172430p:plain:w500

「Schema」タブを選択して、「Refresh schema」ボタンを選択すると、さきほど作成した users テーブルが表示されます。

データベースのブランチを本番環境にプロモート

PlanetScale にデータベースを作成したとき、main という名前の(開発用)ブランチが自動的に作成されました。

開発用のブランチ (development branch) は、スキーマの変更を目的としているので、本番環境で使用することを意図していません。

本番用のブランチ (production branch) とは、本番環境で使用するために設計された自動スケジュールバックアップを備え、高可用性があり、保護されたデータベースのブランチです。

CREATE, ALTER, DELETE などのスキーマ変更は、不慮のデータ損失を防ぐため、本番用のブランチでは許可されていません。

開発用ブランチで作ったデータベースの内容に満足できたら、本番用ブランチにプロモートさせましょう。

ブランチを本番用にプロモートさせるには:

  • 「Overview」をクリックして、「Promote to production」に関する情報が書かれたバナーを表示
  • 「Promote branch」のボタンを選択
  • 開かれる画面で本番用にプロモートしたいブランチを選択(つまり main
  • 再び「Promote branch」のボタンを選択すれば、開発用ブランチから本番用ブランチへのプロモートは完了

f:id:shikaku_sh:20220122172514p:plain:w500 f:id:shikaku_sh:20220122172533p:plain

これで開発用ブランチの本番環境へのプロモートは完了です。これによって、次のメリットがあります:

  • スキーマの直接変更を保護できる
  • 高可用性を得る
  • 毎日の自動バックアップをスケジュール

f:id:shikaku_sh:20220122172548p:plain:w500

次にやることは?

データベースを作成し、スキーマの変更を適用し、データを挿入し、ブランチを本番環境に移行できたら、次はアプリケーションに接続しましょう。

一般的な 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

f:id:shikaku_sh:20220122172627p:plain:w500

アカウントを作成する

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 はデフォルトです)

f:id:shikaku_sh:20220122172655p:plain:w500

データベースにスキーマを追加する

データベースにスキーマを追加するためには、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」を参照します。

参考

PlanetScale