コンテンツにスキップ

ローカル開発

Hyperdriveは、あなたのマシン上で実行されている任意のローカルデータベースインスタンスに直接接続することで、Workersをローカルで開発およびテストする際に使用できます。ローカル開発では、ローカル開発セッションと状態を管理するために、WorkersのコマンドラインインターフェースであるWranglerを使用します。

ローカル開発の設定

ローカルで開発する際に接続するデータベースを指定するには、次の方法があります。

  • 推奨 WRANGLER_HYPERDRIVE_LOCAL_CONNECTION_STRING_<BINDING_NAME>という環境変数を作成し、データベースの接続文字列を設定します。<BINDING_NAME>は、wrangler.tomlまたはPages設定でHyperdriveに割り当てられたバインディングの名前です。これにより、テスト/開発データベースが一時的でない場合、wrangler.tomlに潜在的に機密性の高い資格情報をコミットするのを避けることができます。複数のHyperdriveバインディングを設定している場合は、各バインディングのユニークな名前で<BINDING_NAME>を置き換えてください。
  • wrangler.tomllocalConnectionStringを設定します。

WRANGLER_HYPERDRIVE_LOCAL_CONNECTION_STRING_<BINDING_NAME>環境変数とwrangler.tomllocalConnectionStringの両方が設定されている場合、wrangler devは環境変数を優先して使用します。既存の環境変数を解除するには、unset WRANGLER_HYPERDRIVE_LOCAL_CONNECTION_STRING_<BINDING_NAME>を使用します。

例えば、環境変数を使用するには、wrangler devを実行する前に環境変数をエクスポートします:

Terminal window
# 設定されたHyperdriveバインディングは「TEST_DB」
export WRANGLER_HYPERDRIVE_LOCAL_CONNECTION_STRING_TEST_DB="postgres://user:password@localhost:5432/databasename"
# このローカルインスタンスを参照してローカル開発セッションを開始
npx wrangler dev

wrangler.tomllocalConnectionStringを設定するには、HyperdriveバインディングにlocalConnectionStringプロパティが設定されていることを確認してください:

[[hyperdrive]]
binding = "TEST_DB"
id = "c020574a-5623-407b-be0c-cd192bab9545"
localConnectionString = "postgres://user:password@localhost:5432/databasename"

wrangler devの使用

以下の例では、wranglerのバージョンを確認し、WRANGLER_HYPERDRIVE_LOCAL_CONNECTION_STRING_TEST_DB環境変数を設定し、wrangler devセッションを実行する方法を示します:

Terminal window
# wrangler v3.0+を使用していることを確認
npx wrangler --version
⛅️ wrangler 3.27.0
Terminal window
# 環境変数を設定します:設定されたHyperdriveバインディングは「TEST_DB」です。
export WRANGLER_HYPERDRIVE_LOCAL_CONNECTION_STRING_TEST_DB="postgres://user:password@localhost:5432/databasename"
Terminal window
# ローカル開発セッションを開始:
npx wrangler dev
------------------
非空のWRANGLER_HYPERDRIVE_LOCAL_CONNECTION_STRING_TEST_DB変数が見つかりました。Hyperdriveはローカル開発中にこのデータベースに接続します。
wrangler devはデフォルトでローカルモードを使用し、🔥 Miniflareと👷 workerdによって動作します。
Workerのエッジプレビューセッションを実行するには、wrangler dev --remoteを使用してください。
あなたのWorkerは次のバインディングにアクセスできます:
- Hyperdrive設定:
- TEST_DB: c020574a-5623-407b-be0c-cd192bab9545
ローカルサーバーを開始中...
[mf:inf] http://127.0.0.1:8787/で準備完了
[b] ブラウザを開く、[d] Devtoolsを開く、[l] ローカルモードをオフにする、[c] コンソールをクリアする、[x] 終了する

wrangler devはローカルデータと本番(リモート)データを分離します。ローカルセッションはデフォルトで本番データにアクセスできません。本番(リモート)Hyperdrive設定にアクセスするには、wrangler devを呼び出す際に--remoteフラグを渡してください。--remoteモードで実行中に行った変更は元に戻すことができません。

ローカル開発セッションの設定方法については、wrangler devドキュメントを参照してください。

関連リソース