> ## Documentation Index
> Fetch the complete documentation index at: https://docs.replit.com/llms.txt
> Use this file to discover all available pages before exploring further.

# データベース

> ReplitのビルトインSQLデータベースを使ってアプリのデータを保存・取得する方法を説明します。

export const YouTubeEmbed = ({videoId, title = "YouTube video", startAt}) => {
  if (!videoId) {
    return null;
  }
  let url = "https://www.youtube.com/embed/" + videoId;
  if (startAt) {
    url = url + "?start=" + startAt;
  }
  return <Frame>
      <iframe src={url} title={title} allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowFullScreen></iframe>
    </Frame>;
};

Replitデータベースは完全マネージドのSQLデータベースを使用し、プロジェクトエディターからReplit Appに永続的なデータストレージを追加できます。

<Note>
  最も簡単な始め方は、**Agent**にデータベースをアプリに追加するよう依頼することです。Agentがインテグレーションを設定し、データベーススキーマを作成し、データを保存・取得するようにアプリを更新します。
</Note>

<Frame>
  <img src="https://mintcdn.com/replit/tlGd6oyGOaUUeRxr/images/databases/database-editor.jpg?fit=max&auto=format&n=tlGd6oyGOaUUeRxr&q=85&s=18a9293165cc5d42db6c61ea572780d1" alt="データベースエディターのスクリーンショット" width="1389" height="871" data-path="images/databases/database-editor.jpg" />
</Frame>

## 機能

Replitデータベースツールは以下の機能を提供します：

* **データベースツール**：組み込みのSQLツールでクエリを実行し、データベーススキーマを管理し、データを視覚化します
* **タイムトラベル**：[ロールバック機能](/references/version-control/checkpoints-and-rollbacks/)を使ってデータベースを任意の**Agent**チェックポイントに復元します
* **無料ストレージ**：すべてのReplit Appに20GBの無料ストレージが含まれます
* **環境変数**：Replit Appで環境変数を使ってデータベースに安全にアクセスします

<Info>
  2025年12月4日以前、開発データベースはNeonでホストされており、いくつかの重要な違いがあります。
  詳細は[レガシーNeon開発データベース](#legacy-development-database)のセクションを参照してください。
</Info>

## 使い方

<YouTubeEmbed videoId="zbyRuoPNIc8" title="Replitでデータベースを使う方法" />

プロジェクトエディターから直接Replitデータベースツールにアクセスできます。
以下のセクションでは、データベースのセットアップと管理方法を説明します。

<Accordion title="Replitデータベースツールへのアクセス方法">
  左側の**ツールドック**から：

  1. <img class="icon-svg" src="https://mintcdn.com/replit/X_IP1EeHGm0cA2VA/images/icons/workspace-all-tools-button.svg?fit=max&auto=format&n=X_IP1EeHGm0cA2VA&q=85&s=579643854fb13c402de516695e52c554" alt="全ツールアイコン" width="16" height="16" data-path="images/icons/workspace-all-tools-button.svg" /> **全てのツール**を選択してプロジェクトエディターのツール一覧を表示します。
  2. <img class="icon-svg" src="https://mintcdn.com/replit/rJldsgYVucXB_6kW/images/icons/postgres.svg?fit=max&auto=format&n=rJldsgYVucXB_6kW&q=85&s=68fc78519888560040eb7096f68e76df" alt="PostgreSQLデータベースアイコン" width="24" height="24" data-path="images/icons/postgres.svg" /> **データベース**を選択します。

  **検索バー**から：

  1. 上部の<img class="icon-svg" src="https://mintcdn.com/replit/X_IP1EeHGm0cA2VA/images/icons/workspace-search-icon.svg?fit=max&auto=format&n=X_IP1EeHGm0cA2VA&q=85&s=d3feed840da2d19e1ee4873d137114dc" alt="虫眼鏡アイコン" width="16" height="16" data-path="images/icons/workspace-search-icon.svg" />虫眼鏡を選択して検索ツールを開きます
  2. 「Replit Database」と入力してツールを見つけ、結果から選択します。
</Accordion>

### データベースを追加する

すべてのReplit Appにはデフォルトでデータベースが付属しています。プロジェクトエディターの<img class="icon-svg" src="https://mintcdn.com/replit/rJldsgYVucXB_6kW/images/icons/postgres.svg?fit=max&auto=format&n=rJldsgYVucXB_6kW&q=85&s=68fc78519888560040eb7096f68e76df" alt="PostgreSQLデータベースアイコン" width="24" height="24" data-path="images/icons/postgres.svg" /> **データベース**ツールを選択してアクセスできます。

**Agent**にPostgreSQLデータベースをReplit Appに追加するよう依頼し、アプリが保存すべきデータの詳細を指定することで、データベースをインテグレーションできます。Agentがデータベーススキーマを作成し、データベースと通信するようにアプリを更新します。

### データベースを以前の状態に復元する

[ロールバック機能](/references/version-control/checkpoints-and-rollbacks/)を使ってアプリとデータベースを以前の状態に戻すことができます。
この機能では、**Agent**が作成した任意のチェックポイントにデータベースを復元できます。

<Frame>
  <img src="https://mintcdn.com/replit/0UCOQvZyQpUEM03B/images/replitai/checkpoint-rollback.png?fit=max&auto=format&n=0UCOQvZyQpUEM03B&q=85&s=f9594eb28458309b2759e8698b8535ce" alt="ロールバックオプションを表示するチェックポイントロールバックインターフェース" width="3154" height="2366" data-path="images/replitai/checkpoint-rollback.png" />
</Frame>

<Info>
  チェックポイントの状態に復元する際は、「追加のロールバックオプション」の「データベース」を選択してください。これにより、データベースがチェックポイント時点の状態に復元されます。
</Info>

### データベースコマンドを実行する

SQLランナーは、データベースでSQLコマンドを実行して結果を表示するプロジェクトエディターのツールです。

<Accordion title="SQLランナーへのアクセス方法">
  **Replitデータベース**ツールから：

  1. **マイデータ**タブを選択します
  2. <img class="icon-svg" src="https://mintcdn.com/replit/X_IP1EeHGm0cA2VA/images/icons/sql-runner-icon.svg?fit=max&auto=format&n=X_IP1EeHGm0cA2VA&q=85&s=fd73c517972d1a4004105e6ab49d130b" alt="SQLランナーアイコン" width="16" height="16" data-path="images/icons/sql-runner-icon.svg" /> **SQLランナー**を選択します
</Accordion>

クエリを実行するには、テキストエリアにSQL文を入力して、隣接する<img class="icon-svg" src="https://mintcdn.com/replit/X_IP1EeHGm0cA2VA/images/icons/sql-play.svg?fit=max&auto=format&n=X_IP1EeHGm0cA2VA&q=85&s=eb0c68e0ab494444f0cbc60325bd1150" alt="SQL実行アイコン" width="18" height="18" data-path="images/icons/sql-play.svg" />実行ボタンを選択します：

<Frame>
  <img src="https://mintcdn.com/replit/tlGd6oyGOaUUeRxr/images/databases/sql-runner-run.jpg?fit=max&auto=format&n=tlGd6oyGOaUUeRxr&q=85&s=258c6ac51524a21e6a6e2070c7cefd3c" alt="SQLランナーと実行ボタンのスクリーンショット" width="1390" height="608" data-path="images/databases/sql-runner-run.jpg" />
</Frame>

### データを視覚的に閲覧・編集する

Replitデータベースツールには<a href="https://orm.drizzle.team/drizzle-studio/overview" target="_blank">Drizzle Studio</a>が含まれており、データを視覚的に閲覧・編集できます。

これらのビジュアルツールはシンタックスエラーを回避し、以下の機能を提供します：

* 特定の情報にフォーカスするためのデータのフィルタリングとソート
* 外部利用のためのデータエクスポート
* 行データの挿入または変更
* スキーマ、テーブル、ビュー、列挙型の作成と管理

これらのツールは**Replitデータベース**ツールの**マイデータ**タブからアクセスできます。

以下の画像はDrizzle Studioビルダーインターフェースのビューです：

<Frame>
  <img src="https://mintcdn.com/replit/tlGd6oyGOaUUeRxr/images/databases/database-editor.jpg?fit=max&auto=format&n=tlGd6oyGOaUUeRxr&q=85&s=18a9293165cc5d42db6c61ea572780d1" alt="テーブル構造エディターの画像" width="1389" height="871" data-path="images/databases/database-editor.jpg" />
</Frame>

<Tip>
  [環境変数](#environment-variables)にある接続文字列を使用して、PostgreSQL互換のSQLクライアントからデータベースに接続できます。
</Tip>

### 接続認証情報と使用状況を確認する

データベースの接続認証情報はReplit Appの環境変数として保存されます。
これらの認証情報は、アプリがデータベースに安全に接続してコマンドを実行するために使用されます。

<Accordion title="データベース接続認証情報へのアクセス方法">
  1. プロジェクトエディターで<img class="icon-svg" src="https://mintcdn.com/replit/rJldsgYVucXB_6kW/images/icons/postgres.svg?fit=max&auto=format&n=rJldsgYVucXB_6kW&q=85&s=68fc78519888560040eb7096f68e76df" alt="PostgreSQLデータベースアイコン" width="24" height="24" data-path="images/icons/postgres.svg" /> **Replitデータベース**ツールに移動します
  2. 開発データベースまたは本番データベースを選択します
  3. <img class="icon-svg" src="https://mintcdn.com/replit/rJldsgYVucXB_6kW/images/icons/settings-icon.svg?fit=max&auto=format&n=rJldsgYVucXB_6kW&q=85&s=27601119959a9349e102c44c2adbd398" alt="歯車アイコン" width="16" height="16" data-path="images/icons/settings-icon.svg" /> **設定**タブ（歯車アイコン）を選択します。このタブにはデータベースの接続認証情報とストレージ使用量が表示されます。
</Accordion>

#### 環境変数

開発データベースへの接続に利用可能な環境変数は以下の通りです：

* `DATABASE_URL`：データベースへの接続と認証の方法

この`DATABASE_URL`はアプリからのみ使用でき、仮に漏洩しても他者がデータベースにアクセス・変更するために使用することはできません。

<Info>
  開発データベースがまだ[レガシーNeonインフラ](#legacy-development-database)にある場合、次の追加環境変数も利用可能です：`PGHOST`、`PGUSER`、`PGPASSWORD`、`PGDATABASE`、`PGPORT`。これらの個別の接続変数はReplitの現在のインフラでホストされているデータベースには提供されません — 代わりに`DATABASE_URL`を使用してください。
</Info>

<Info>
  この`DATABASE_URL`はアプリにスコープされているため、開発データベースは他のアプリ（あなた自身が所有するものや外部のデータベースビューアーも含む）からはアクセスできません。
  この分離はセキュリティのベストプラクティスに従っており、データベースへの不正アクセスを防ぎます。
</Info>

<Warning>
  [レガシーNeon開発データベース](#legacy-development-database)をまだ使用している場合は、`DATABASE_URL`を共有しないでください。
  データベースの認証情報が含まれており、誰でもデータベースにアクセス・変更するために使用できます。
  公開の場所やサポートチケットには絶対に貼り付けないでください。
</Warning>

### セキュリティ機能

**Agent**を使ってデータベースインテグレーションを追加すると、組み込みのセキュリティでデータベース通信を処理するオブジェクト・リレーショナル・マッパー（ORM）が追加されます。

このORMレイヤーとAgentのセキュリティベストプラクティスの実装により、以下の機能を通じてアプリが攻撃から保護されます：

* **スキーマ検証**：データが期待される形式に準拠しているか検証します
* **データサニタイズ**：SQLインジェクション攻撃を防ぐためにビルダーの入力を自動的にクリーンアップします

## レガシー開発データベース

2025年12月4日以前、開発データベースは<a href="https://neon.com/" target="_blank">Neon</a>でホストされていました。
このデータベースは廃止され、新しい開発データベースはすべてReplitの独自データベースインフラでホストされています。

`DATABASE_URL`[環境変数](#view-connection-credentials-and-usage)を確認することで、開発データベースがNeonでホストされているかどうかを確認できます。

<Info>
  `DATABASE_URL`に`neon.tech/neondb`が含まれている場合、開発データベースはまだNeonでホストされています。
  `helium/heliumdb`が含まれている場合は、開発データベースがReplitでホストされています。
</Info>

以下は、レガシーNeon開発データベースと新しいReplit開発データベースの主な違いです：

| **機能**       | **Replit（現在）**                                                                                  | **Neon（レガシー）**                                                                |
| ------------ | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------- |
| **ホスティング**   | Replit独自のインフラでホスト                                                                               | Neon（サードパーティプロバイダー）でホスト                                                       |
| **請求**       | すべてのReplit Appに無料で含まれる                                                                          | 使用量ベースの請求。詳細は[発行とデータベースの請求](/billing/about-usage-based-billing#databases)を参照。 |
| **復元機能**     | [ロールバック機能](/references/version-control/checkpoints-and-rollbacks/)を使って任意のチェックポイントにデータベースを復元できます | ポイントインタイム復元（PITR）— バックアップ保持期間内の任意の時点に復元できます。                                  |
| **接続セキュリティ** | アプリ内からのみアクセス可能で、公開されることはありません。                                                                  | 完全な接続文字列を使用 — 漏洩した場合、誰でもデータベースにアクセス・変更できます。                                   |
| **リミックス動作**  | [リミックス](/build/remix-an-app)すると、分離とセキュリティのためにデータがコピーされた新しい開発データベースが作成されます。                      | リミックスは同じデータベースをすべてのコピーで再利用するため、リミックスの変更が元のアプリに影響する可能性があります。                   |
| **データベース作成** | 各Replit Appに自動的に作成されます。                                                                         | 明示的なセットアップが必要でした。                                                             |
| **発行ワークフロー** | デプロイまたは発行には、環境間の分離のために[本番データベース](/references/data-and-storage/production-databases)の作成が必要です。    | 開発と本番は同じデータベースを共有しており、意図しない開発の変更が本番アプリに影響する可能性がありました。                         |

<Warning>
  レガシーNeonデータベースの使用中にアプリがフォークまたはリミックスされた場合、発行したアプリはまだ元のアプリのデータベースURLを参照している可能性があります。[データベースアップグレード](/references/data-and-storage/database-upgrade)後、この共有接続は機能しなくなります。発行したアプリの更新方法については[共有データベースを使用する発行済みアプリの修正](/references/data-and-storage/shared-database-migration)を参照してください。
</Warning>
