
比較
Agentは本番データベースを変更できません。この制限は、本番データベースを安全に保つために設けられています。Agentは開発データベースを編集できます。公開時に、Agentが開発データベースの構造に加えた変更(列やテーブルの追加・削除)は本番データベースに適用されます。本番データは手動で編集できます。Databaseツールを開き、本番データベースを選択してMy Dataを開き、Enable Editingをオンにしてください。
公開時には、drizzle-kitを使用してテーブル、列、インデックス、制約、ビュー、行レベルセキュリティポリシーの変更が適用されます。ドメイン、関数、プロシージャ、トリガー、権限(grants)はコピーされず、ロールのサポートも限定的です。サポートされていないデータベースオブジェクトを参照してください。
公開時に本番データベースを作成する
公開したアプリには、構築中に使用する開発データベースとは別に、専用の本番データベースが用意されます。- 現在のインフラストラクチャ(Helium): 開発データベースにデータが含まれている場合、Replitは公開時に本番データベースを自動的に作成します。
- レガシーNeon開発データベース: 公開設定から本番データベースを作成します。公開中にDatabase settingsを開き、Create production databaseをオンにします。必要に応じてSet up your production database with your current development dataもオンにすると、現在の開発データをコピーできます。

初回公開: Publishing → Advanced settings → Database settings。デプロイメントのシークレットセクションは非表示。
アプリが使用しているデータベースを確認する
ほとんどの場合、公開したアプリはReplitが管理する本番データベース、つまりDatabaseツールでProduction Databaseとして表示されているデータベースを使用します。 どちらのデータベースもDATABASE_URLという変数を使用しますが、環境ごとに値が異なります:
- Project Editor: ワークスペース、Shell、Agentのセッションでは、
DATABASE_URLは開発データベースを指します。Replitが自動的に接続するため、現在のインフラストラクチャではSecretsには表示されません。 - 公開したアプリ: 公開すると、アプリには本番データベースを指す別の
DATABASE_URLが設定されます。
Shellに
REPLIT_ENVIRONMENT=productionと表示されていても、ワークスペースが本番データベースを使用しているという意味ではありません。この変数はアプリではなくReplitのプラットフォームを表しています。公開したアプリはREPLIT_DEPLOYMENT=1で実行されます。Agentに確認を依頼する
Agentはコードとシークレットを確認でき、ほとんどのアプリでは本番データを変更せずに参照できます。Agentはリードレプリカを通じて本番を読み取ります。リードレプリカは、本番データベースの読み取り専用コピーで、常に最新の状態に保たれます。ごく最近の変更が反映されるまでに少し時間がかかる場合があります。リードレプリカは、公開前に変更をテストするための一時的で独立したコピーである公開プレビューとは異なります。 次のプロンプトをAgentに貼り付けてください:Prompt
DATABASE_URLを読み取り、Secretsに他のデータベース接続がなく、最新の行がライブアプリと一致しています。
DatabaseツールとPublishingで確認する
1
本番データベースを開く
Databaseツールで、All Databasesの横にあるデータベースメニューを開き、Productionを選択します。

2
ライブアプリのレコードを探す
My Dataを開き、公開したアプリで最近作成したもの(新しいアカウントや注文など)を探します。それが見つかれば、公開したアプリはこのデータベースに書き込んでいます。本番は読み取り専用モードで開くため、閲覧しても安全です。

3
接続設定を比較する
本番データベースのSettingsタブを開き、Connection stringを探します。次にPublishingを開き、Adjust settingsを選択して、Production app secretsの下にある

DATABASE_URLを探します。それぞれの値を表示し、両方が同じホストを指していることを確認します。ほとんどのアプリでは、同じエンドポイントID(ep-で始まる部分)であることを意味します。プールされたアドレスではIDの後に-poolerが付くため、文字列全体が完全に一致する必要はありません。

4
Secretsに別のデータベースがないか確認する
Secretsを開きます。Replitの組み込み接続はここには表示されません。ご自身で追加した
DATABASE_URLや、SUPABASE_DATABASE_URLなどの別のデータベース接続がある場合、アプリは代わりにそのデータベースを使用している可能性があります。コードがどちらを読み取っているかをAgentに尋ねてください。NEON_DATABASE_URLシークレットは、データベースインフラのアップグレードの際に保存された、以前の開発データベース接続です。コードがそれを読み取っている場合にのみ、アプリはそれを使用します。
結果の見方
これらの確認では、アプリの設定状況がわかります。ライブアプリに想定外のデータが表示される場合は、コードがそのデータを読み書きしている場所をAgentに調べてもらってください。
コネクションプーリング
デフォルトでは、本番データベースではコネクションプーリングが有効になっていません。アプリはDATABASE_URL接続文字列を使用してデータベースに直接接続するため、ほとんどのフレームワークは独自のクライアント側接続プールを管理する必要があります。
各Neonプロジェクトには、直接接続文字列とプール接続文字列の両方が含まれています。直接接続文字列は
postgresql://neondb_owner:<password>@<host>.<region>.neon.tech/<db>?sslmode=requireのような形式です。プール接続を使用するには、ホスト名に-poolerを追加します: postgresql://neondb_owner:<password>@<host>-pooler.<region>.neon.tech/<db>?sslmode=require。本番データベースへの安全な変更
データベースの変更を含む更新を公開すると、ReplitはPublishペインで移行の手順を案内します。データを削除する可能性のある変更にはフラグを立て、移行済みの本番コピーでアプリをテストでき、承認した後にのみ変更を適用します。フロー全体については、Publishが本番データベースを更新する仕組みを参照してください。公開中に、公開したアプリで短いダウンタイムが発生することがあります。データベースの変更を適用する際、競合を防ぎデータを保護するために、アプリを一時的に停止する必要がある場合があります。
- まだデータが含まれている列やテーブルの削除
- 既存の値が変換できない場合に失敗する可能性のある列のデータ型の変更
- すでに行があるテーブルに、デフォルト値なしで必須フィールドを追加すること
- テーブルや列の名前変更: Publishで確認を求められたときに名前変更を確定しないと、データが削除されます
- 既存の行が違反する可能性のあるテーブルへの一意制約の追加
公開プレビューで変更をテストする
公開プレビューは、実際のユーザーに影響を与える前にデータベースの変更やアプリケーションの更新をテストできる、一時的で分離された本番環境のコピーです。次のような用途に使用します:- データベースの変更を適用した状態でも、主要なユーザーフロー全体でアプリが問題なく動作することを確認する
- 既存のデータが正しく移行され、新しいフィールドに期待される値が含まれていることを確認する
- クエリの応答時間にパフォーマンスの低下がないか確認する
請求とリソース使用量
本番データベースの料金には、コンピュート使用量とストレージが含まれます。データベースは5分間非アクティブになるとアイドル状態になり、次のクエリが届くまでコンピュートの課金が一時停止されます。コンピュートがアイドル状態の間も、保存されたデータにはストレージ料金が発生し続けます。 Databaseツールのランディングビューには、Billing PeriodとHours of Compute Usedが表示されます。データベースごとのストレージを確認するには、データベースのSettingsタブを開きます。すべてのReplit Appにわたる使用状況を確認するには、Settingsのアカウント使用状況に移動し、PostgreSQL StorageとPostgreSQL Computeの行を展開します。 Replitがデータベースの使用量に対してどのように課金するかについては、デプロイメントとデータベースの請求を参照してください。本番データベースの削除
削除したデータベースの復旧は、削除された行やテーブルの復元とは異なります。既存のデータベース内のデータ変更については、データ復旧を参照してください。データベースの削除方法
データベースの削除方法
Databaseツールから:
- データベースを選択し、Settingsタブを開きます
- Remove databaseを選択し、Yes, Remove databaseを選択して確認します
レガシー開発データベース
2025年12月4日以前は、開発データベースはNeonでホストされていました。新しい開発データベースはすべて、Replit独自のインフラストラクチャ(Helium)でホストされています。アプリがどちらを使用しているかは、Settingsタブで確認できます。DATABASE_URLにneon.techが含まれていればレガシーNeon、heliumが含まれていれば現在のインフラストラクチャです。
データベースインフラのアップグレード
Replitは開発データベースをNeonから、Replit独自のマネージドPostgreSQLインフラストラクチャであるHeliumへアップグレードしています。このアップグレードは自動的に行われ、Project Editorでアプリを開くとアプリごとに1回実行され、すべてのデータが保持されます。 変更内容:- 低レイテンシとストレージの増加: データベースがアプリと同じReplitインフラストラクチャ上で動作するようになり、ストレージ制限が10GBから20GB(ProおよびEnterpriseプランでは50GB)に増加します。
- 同じデータベースエンジン: HeliumはNeonと同じバージョンのPostgreSQL 16を使用します。クエリ、スキーマ、データの動作は変わりません。
- 接続情報の自動更新:
DATABASE_URLはHeliumを指すように更新されます。以前のNeon接続文字列は、参照用としてNEON_DATABASE_URLとしてSecretsに保存されます。 - 個別のPG変数の削除:
PGHOST、PGPORT、PGUSER、PGPASSWORDは削除されます。代わりにDATABASE_URLを使用してください。
- ハードコードされたNeon接続文字列:
neon.tech接続文字列を参照しているコードを、代わりにDATABASE_URL環境変数を使用するように更新してください。 - カスタムPostgreSQLロール: ロールと権限は自動的に移行されますが、ロールのパスワードはコピーできません。新しいデータベースでカスタムロールのパスワードをリセットしてください。
アップグレード後のSSL接続エラー
The server does not support SSL connectionsのようなエラーが表示される場合、接続コードがSSLハンドシェイクを強制しています。NeonはSSLを必須としていましたが、Heliumはアプリのそばでローカルに動作するためSSLを使用しません。SSLの設定を環境に応じて条件分岐させてください:
データベースを共有していたフォークされたアプリ
レガシーNeonシステムでは、アプリをフォークすると元のアプリのDATABASE_URLがコピーされ、両方のアプリとその公開済みバージョンが同じデータベースに接続していました。共有されていたレガシーデータベースは2026年6月8日に停止されました。公開したアプリが動作しなくなった、またはデータへのアクセスを失った場合は、共有データベースを使用する発行済みアプリの修正を参照するか、サポートに問い合わせてください。
次のステップ
- Publishが本番データベースを更新する仕組み: 公開時にスキーマ変更をレビュー、テスト、承認します。
- データリカバリー: 開発または本番のデータを復元します。
- 接続の詳細: データベースの接続文字列を確認します。
- データを操作する: データを参照、編集、クエリします。