16
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Vercel Postgresを試してみた

Posted at

はじめに

2023年5月2日に、Vercel Storageが発表されました。
この記事では、Vercel Storageの一つであるVercel Postgresを試してみた結果を簡単にまとめます。

Vercel Storageとして発表されたのは、以下の3つのサービスです。

  • Vercel Postgres: サーバーレスなPostgres(提携:Neon)
  • Vercel KV: サーバレスなRedis(提携:Upstash)
  • Vercel Blob: エッジファイルストレージサービス(提携:Cloudflare R2)

Vercel Postgresを試してみる

今回は、サクッとVercel Postgresを試すことができるスターターテンプレート、Vercel Postgres Next.js StarterのOne-Click Deployを試してみました。

Vercel Postgres Next.js Starterにアクセスし、「Deploy」ボタンをクリックします。
image.png

適当なリポジトリ名をつけて、「Create」ボタンをクリックします。
image.png

次に「Add Strage」の「Add」をクリックします。
image.png

データベース名を入力し、Regionを選択します。
選択できるRegionは以下になります。

  • Cleveland, USA
  • Washington, D.C., USA
  • Portland, USA
  • Frankfurt, Germany
  • Singapore

データベース作成後にRegionを変更することはできません。
Regionを変更したいときは、新しいデータベースを作成し、データを移行する必要があります。

image (13).png

最後に「Deploy」ボタンをクリックすると、デプロイできました!
https://postgres-starter-nine.vercel.app/
image (15).png

ブラウザからデータベースを操作する

次に、追加されたデータベースをブラウザから操作してみます。

1. ブラウザからデータベースの中身を見る

Vercelの「Storage」→データベース名をクリックすると、データベースの詳細ページが表示されます。
image.png

データベースの詳細ページの下部の「Data」→「Browse」で、テーブルを選ぶと中身が表示されます。
image.png

2. ブラウザからクエリを実行する

データベースの詳細ページの下部の「Data」→「Query」をクリックすると、クエリを実行することができます。

試しに、usersテーブルにphoneカラムを追加してみます。
image.png

usersテーブルの中身を見てみると、phoneカラムが追加されていました!
image.png

ローカルからDBに接続する

最後に、先程デプロイしたリポジトリをローカルにcloneして、ローカルからDBに接続してみます。

1. 環境変数を設定する

リポジトリをcloneしたら、まずは環境変数を設定します。
下記のコマンドで.env.exampleファイルをコピーします。

% cp .env.example .env.local

Vercelの「Storage」→該当のデータベース名をクリックします。
image.png

.env.local ボタンをクリックすると環境変数が表示されるので、「Copy Snippet」ボタンを押してコピーし、.env.local ファイルに貼り付けます。
image.png

2. 動作確認する

ローカル環境で動かしてみます。

% pnpm install
% pnpm dev

デプロイしたときと同じように、データベースに入っているデータが表示されました!
image.png

3. ローカルからデータベースを操作してみる

今回は、推奨されているsql()を使って、ローカルからデータベースを操作してみます。

まずはpostsテーブルを追加してみます。

import { sql } from '@vercel/postgres';
...
await sql`CREATE TABLE posts (likes INT);`

ブラウザでデータベースを確認すると、postsテーブルが追加されていました。
image.png

次はpostsテーブルにデータを追加してみます。

await sql`INSERT INTO posts (likes) VALUES (200)`;

ブラウザで確認すると、データが追加されていました。
image.png

その他のクエリの例や、sql()以外を使う方法についてはこちらのドキュメントをご覧ください。

まとめ

Vercel Postgresを試してみた結果、とても簡単にブラウザからもローカルからもデータベースを操作できることがわかりました。

Vercel KVやVercel Blobについても、試してまとめていきたいと思います。

16
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?