> ## 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 Appを動かすライブデータ専用のデータベースです。実験や機能開発を行う開発データベースとは異なり、本番データベースはビルドを続けながらも実際のデータを安全に保ち、信頼性とパフォーマンスを確保します。

本番データベースの扱い方を理解することは、ユーザーを中断させることなく進化・拡張できる堅牢なアプリケーションを構築するために不可欠です。

<Frame>
  <img src="https://mintcdn.com/replit/tlGd6oyGOaUUeRxr/images/databases/production-databases.jpg?fit=max&auto=format&n=tlGd6oyGOaUUeRxr&q=85&s=b60de03dc3f59d971894d1795033cc6b" alt="本番データベース管理インターフェース" width="1080" height="471" data-path="images/databases/production-databases.jpg" />
</Frame>

## 本番データベースとは？

本番データベースは、実際のユーザーとそのデータを提供するライブの運用データベースです。いくつかの重要な点で開発データベースと大きく異なります：

### 本番データベースと開発データベースの比較

| 観点          | 開発データベース                 | 本番データベース                         |
| ----------- | ------------------------ | -------------------------------- |
| **目的**      | 実験と機能開発                  | 実際のユーザーへの提供とビジネスデータの保存           |
| **データ**     | テストデータ、ダミーレコード、小さなデータセット | 実際のユーザーデータ、ビジネスに重要な情報            |
| **パフォーマンス** | 開発速度に最適化                 | 信頼性とユーザー体験に最適化                   |
| **変更**      | 頻繁なスキーマ変更、素早い反復          | データマイグレーションとロールバック戦略による慎重で計画的な変更 |
| **ダウンタイム**  | 開発中は許容される                | 最小化または排除する必要がある                  |
| **バックアップ**  | テスト用としては任意               | ビジネス継続性に不可欠                      |

<Note>
  Agentは本番データベースを変更できません。この制限は本番データベースを安全に保つために設けられています。

  Agentは開発データベースを編集できます。発行時、Agentが開発データベースの構造に加えた変更（列やテーブルの追加・削除など）は本番データベースに適用されます。

  データベースパネル > 本番データベース > マイデータに移動し、**編集**を切り替えることで、いつでも手動で本番データを編集できます。
</Note>

## データベース技術とインフラ

Replitの本番データベースは、標準の[SQLデータベース](/references/data-and-storage/sql-database)と同じデータベースツールと発行ワークフローを使用します。[Neon](https://neon.tech)でホストされるPostgreSQL 16または17を実行し、エンタープライズグレードの信頼性とパフォーマンスを提供します。

### Replit SQLデータベースとの関係

本番データベースは、本番固有のインフラを使用しながら、同じReplitデータベース体験とインテグレーションされています：

* **PostgreSQL 16または17**：高度な機能を持つ業界標準のリレーショナルデータベース
* **Neonインフラ**：自動スケーリングとコスト最適化を提供するサーバーレスデータベースプラットフォーム
* **組み込みツール**：SQLランナー、Drizzle Studio、ビジュアルデータ管理ツールへのアクセス
* **環境変数**：自動生成された認証情報による安全な接続管理

<Info>
  データベースの機能、接続設定、技術仕様の詳細については、[SQLデータベース](/references/data-and-storage/sql-database)のドキュメントを参照してください。
</Info>

<Warning>
  本番データベースはNeonで動作し、開発データベース（2025年12月4日以降）はReplitの独自インフラで動作します。この2つの環境では、利用可能な環境変数、ストレージ制限、接続動作が異なります。開発側のスタックの詳細については[レガシー開発データベース](/references/data-and-storage/sql-database#legacy-development-database)のセクションを参照してください。
</Warning>

## 本番データベースへの安全な変更の実施

データベースの変更を含むReplit Appのアップデートを発行する際、ダウンタイムやデータ損失を避けるために慎重な計画が必要なシナリオに遭遇することがあります。

### 後方互換性のない変更

一部のデータベース変更は、既存のアプリケーションコードとの互換性を損なう可能性があります。これらの変更はスムーズなデプロイを確保するために特別な処理が必要です。

<Info>
  発行中に発行済みアプリの短いダウンタイムが発生する場合があります。このダウンタイムは、データベースの変更によって競合を防ぎ安全な更新を確保するためにアプリを一時停止する必要がある場合に発生します。更新適用中にアプリを停止することで、変更が適用されている間のデータ損失や破損からデータを保護します。
</Info>

### 一般的な後方互換性のない変更

以下の種類の変更は、通常、慎重な発行戦略が必要です：

* アプリケーションコードがまだ参照している**データベース列の削除**
* 既存のコードが処理できない方法での**列のデータタイプの変更**
* デフォルト値なしで既存テーブルへの**必須フィールドの追加**
* 既存のクエリを壊す**テーブルまたは列の名前変更**
* 既存のアプリケーションロジックを拒否する可能性のある**制約の変更**

## デプロイメントプレビュー

本番へのデータベース変更を発行する前に、Replitはプレビュー環境で変更を安全にテストするツールを提供します。

デプロイメントプレビューは、実際のユーザーに影響を与える前にデータベースの変更とアプリケーションのアップデートをテストできる、一時的な分離された本番環境のコピーです。
このプレビュー環境は本番設定をミラーリングしますが、独立して動作します。
潜在的な問題を早期に発見し、変更が正しく動作することを確認するのに役立ちます。

プレビュー環境でのデプロイメントテストは、ユーザーへの影響前に問題を特定するために不可欠です。データベースの変更が正しく動作することを確認するには、以下の手順に従ってください：

**1. 機能テスト**

* データベースの変更が適用された状態でアプリが正常に動作することを確認する
* 主要なユーザーフローをすべてテストして機能が維持されていることを確認する
* スキーマ変更後にデータが正しく表示されることを確認する

**2. データ整合性の検証**

* 既存のデータが適切にマイグレーションまたは変換されていることを確認する
* 新しいフィールドに期待される値または適切なデフォルト値が含まれていることを確認する
* 新しい制約に準拠しないデータのエッジケースをテストする

**3. パフォーマンス検証**

* プレビュー環境でクエリのレスポンス時間を監視する
* 新しいインデックスが効果的に使用されていることを確認する
* 変更によってパフォーマンスのリグレッションが発生していないことを確認する

## ポイントインタイム復元

本番データベースでは、ポイントインタイム復元機能を使って特定の時点にデータベースを復元できます。

<Frame>
  <img src="https://mintcdn.com/replit/tlGd6oyGOaUUeRxr/images/databases/database-rollbacks.jpg?fit=max&auto=format&n=tlGd6oyGOaUUeRxr&q=85&s=bef4a8570506fea11823cba941ad89a4" alt="ロールバックオプションを表示するデータベースロールバックインターフェース" width="1082" height="708" data-path="images/databases/database-rollbacks.jpg" />
</Frame>

どれだけ遡って復元できるかはプランによって異なります：Coreプランは最大7日間の履歴を保持し、ProおよびTeamsプランは最大28日間保持します。ProからCoreにダウングレードした場合、保持期間は7日間に短縮されます。

この操作では、本番データベースのみがチェックポイント時点の状態に復元されます。アプリは復元されません。

アプリをチェックポイント時点の状態に復元するには、[ロールバック機能](/references/version-control/checkpoints-and-rollbacks/)を使ってチェックポイントにロールバックし、アプリを再発行する必要があります。

## 請求とリソース使用量

本番データベースは、サーバーレスデータベースプロバイダーであるNeonを通じた使用量ベースで請求されます。

Neonのサーバーレス機能には以下が含まれます：

* インフラのセットアップやメンテナンスが不要
* 使用量のニーズに応じた自動スケーリング
* データベースがアクティブな場合のみのコンピュート時間の請求

データベースは5分間の非アクティブ後にアイドル状態になり、コンピュート時間の請求が一時停止されます。
クエリを受け取ると即座に再起動します。

<Tip>
  このサーバーレスデータベース技術の詳細については、
  <a href="https://neon.tech/docs/introduction/compute-lifecycle" target="_blank">Neon Computeのライフサイクル</a>ドキュメントを参照してください。
</Tip>

Replitはデータベースの使用状況をリアルタイムで追跡します。
現在のReplit Appのコンピュート時間とストレージ使用量の詳細、またはアカウント上の各Replit Appの詳細を確認できます。

<Accordion title="データベース使用状況へのアクセス方法">
  現在の請求期間のデータベースコンピュート時間とストレージ使用量を確認するには：

  **Replitデータベース**ツールから：

  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" /> **設定**タブを選択します
  4. **使用ストレージ**セクションに、現在の請求期間のデータベースの総使用ストレージが表示されます。

  **設定** → **アカウント** → **アカウント使用量**からすべてのReplit Appを確認するには：

  1. **設定**を開いて**アカウント** → **アカウント使用量**（または**アカウントのリソース制限を表示** / **使用量**）に移動します。
  2. **リソース使用量**セクションまでスクロールします。
  3. **PostgreSQLストレージ**と**PostgreSQLコンピュート**の行を展開して各Replit Appの詳細を確認します。
</Accordion>

データベース使用料の請求方法については[デプロイメントとデータベースの請求](/billing/about-usage-based-billing#databases)を参照してください。

## よくある問題のトラブルシューティング

### 発行の失敗

データベースの問題で発行が失敗した場合：

1. **発行ログを確認**してデータベースの接続またはスキーマの競合に関する具体的なエラーメッセージを確認します
2. **データベースの接続認証情報を確認**して、発行されたアプリ環境からアクセス可能であることを確認します
3. **最近のスキーマ変更を確認**して、既存のアプリケーションコードとの潜在的な競合を特定します
4. **再発行を試みる前にプレビュー環境で変更をテスト**します

## 本番データベースの削除

<Warning>
  削除操作は7日間の保持期間後に取り消せません。続行する前に重要なデータをバックアップしてください。
  データベースには7日間のソフト削除期間があり、その間はデータベースを復元できます。サポートが必要な場合はサポートにお問い合わせください。7日後、データベースはハード削除され、復元できなくなります。
</Warning>

Replit Appのデータベースが不要になった場合、データベースとそのすべてのデータを削除できます。

<Accordion title="データベースの削除方法">
  **Replitデータベース**ツールから：

  1. <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" /> **設定**タブを選択します
  2. **データベースを削除**を選択し、**はい、データベースを削除**を選択して確認します
</Accordion>

## 次のステップ

Replitのデータベース管理について詳しく学ぶ：

* [SQLデータベース](/references/data-and-storage/sql-database)：ReplitのマネージドPostgreSQLデータベースサービスについて学ぶ
* [デプロイメント](/learn/projects-and-artifacts/replit-deployments)：データベースの変更に伴うデプロイメントの仕組みを理解する
* [Appストレージ](/references/data-and-storage/object-storage)：クラウドでのファイルとアセットの保存について学ぶ（以前はオブジェクトストレージと呼ばれていました）
