コンテンツにスキップ

Neon Postgres & Astro

Neon は、フルマネージドなサーバーレスPostgresデータベースです。ストレージとコンピューティングを分離し、オートスケーリング、ブランチング、ボトムレスストレージを提供します。

AstroプロジェクトにNeonを追加する

Section titled “AstroプロジェクトにNeonを追加する”

AstroでNeonを使用するには、Neon環境変数を設定する必要があります。プロジェクトルートで .env ファイルを作成または編集し、次のコードを追加して、独自のプロジェクトの詳細に置き換えます。

.env
NEON_DATABASE_URL="postgresql://<user>:<password>@<endpoint_hostname>.neon.tech:<port>/<dbname>?sslmode=require"

より良いTypeScriptサポートのために、src/env.d.ts ファイルで環境変数を定義します。

src/env.d.ts
interface ImportMetaEnv {
readonly NEON_DATABASE_URL: string;
}
interface ImportMeta {
readonly env: ImportMetaEnv;
}
Astroの環境変数.env ファイルの詳細をご覧ください。

Neonに接続するために @neondatabase/serverless パッケージをインストールします。

ターミナルウィンドウ
npm install @neondatabase/serverless

新しいファイル src/lib/neon.ts を作成し、次のコードでNeonクライアントを初期化します。

src/lib/neon.ts
import { neon } from '@neondatabase/serverless';
export const sql = neon(import.meta.env.NEON_DATABASE_URL);

これで、任意の .astro コンポーネントからNeonクライアントを使用してデータベースにクエリを実行できます。次の例では、Postgresデータベースから現在時刻を取得します。

src/pages/index.astro
---
import { sql } from '../lib/neon';
const response = await sql`SELECT NOW() as current_time`;
const currentTime = response[0].current_time;
---
<h1>現在時刻</h1>
<p>時刻は: {currentTime}</p>

Neon によるデータベースブランチング

Section titled “Neon によるデータベースブランチング”

Neonのブランチング機能を使用すると、開発やテスト用にデータベースのコピーを作成できます。Astroプロジェクトでこれを使用するには、各ブランチに異なる環境変数を作成します。

.env.development
NEON_DATABASE_URL=your_development_branch_url
.env.production
NEON_DATABASE_URL=your_production_branch_url

その他のバックエンドサービスガイド

貢献する コミュニティ スポンサー