> ## 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.

# データベースアップグレード

> 開発データベースがNeonからHeliumへ自動アップグレードされる内容と、その過程で起きることを説明します。

Replitは開発データベースを[Neon](https://neon.tech)（サードパーティのサーバーレスPostgreSQLプロバイダー）から**Helium**（ReplitのマネージドPostgreSQLインフラ）へアップグレードしています。このアップグレードはアプリごとに1回自動的に実行され、すべてのデータが保持されます。

<Note>
  このアップグレードは**開発データベース**にのみ適用されます。デプロイ済みアプリが使用する本番データベースは、ほとんどの場合影響を受けません。ただし、デプロイ済みアプリが別のアプリと開発データベースを共有している場合（フォークまたはリミックスされた古いアプリで一般的）は、重要な手順について[発行済みアプリの共有データベース問題を修正する](/references/data-and-storage/shared-database-migration)を参照してください。
</Note>

## 変更内容

このアップグレードにより、開発データベースがNeonのインフラからHeliumへ移行します。HeliumはReplitのプラットフォーム上で直接動作します。具体的な変更点は以下のとおりです：

* **低レイテンシ**: データベースがアプリと同じReplitインフラ上で動作するため、接続時間が短縮されます
* **ストレージ増加**: ストレージ制限が10 GBから20 GBに増加します
* **同じデータベースエンジン**: HeliumはNeonと同じバージョンのPostgreSQL 16を使用します。クエリ、スキーマ、データは同様に動作します
* **シームレスな接続**: `DATABASE_URL`環境変数が自動的にHeliumを指すよう更新されます
* **Neon接続の保存**: 以前のNeon接続文字列は参照用として`NEON_DATABASE_URL`としてSecretsに保存されます。アップグレード後、古いNeonデータベースはアプリで使用されなくなり、一時的な猶予期間後に削除が予定されています。

レガシーNeonデータベースと新しいReplitデータベースの全比較（請求、復元機能、接続セキュリティ、リミックスの動作の違いを含む）については、[レガシー開発データベース](/references/data-and-storage/sql-database#legacy-development-database)を参照してください。

## アップグレード中に起きること

アップグレードはProject EditorでReplit Appを開くと自動的に実行されます。

1. \*\*「データベースをアップグレード中」\*\*というメッセージの進捗画面が表示されます
2. データがNeonからHeliumへ安全にコピーされます。転送中にデータが変更または失われることはありません
3. 所要時間はデータベースのサイズによって異なります。数分から大規模なデータベースでは数時間かかる場合があります
4. タブを開いたままにするか、閉じて後で戻ることができます
5. アップグレードが完了すると、確認ダイアログ\*\*「データベースをアップグレードしました！」\*\*が表示されます

<Info>
  アップグレードで問題が発生した場合、作業を続けられるよう自動的にスキップされます。
  次回アプリを開いたときに再試行されます。
</Info>

## アップグレード後の対応

ほとんどのビルダーは何も対応する必要はありません。アプリはこれまでどおり動作します。

<Tip>
  `DATABASE_URL`環境変数を使用してデータベースに接続しているコードがある場合、変更は不要です。変数は新しいHeliumデータベースを指すよう自動的に更新されます。
</Tip>

以下のいずれかがアプリに該当する場合は確認してください：

* **ハードコードされたNeon接続文字列**: コードが`neon.tech`接続文字列を直接参照している場合、代わりに`DATABASE_URL`環境変数を使用するよう更新してください（JavaScriptでは`process.env.DATABASE_URL`、Pythonでは`os.environ['DATABASE_URL']`）。

* **カスタムPostgreSQLロール**: Neon上でカスタムデータベースロールを作成していた場合、そのロールと権限は自動的にマイグレーションされます。ただし、ロールのパスワードはコピーできないため、新しいHeliumデータベース上のカスタムロールのパスワードをリセットする必要があります。

* **個別のPG環境変数**: `PGHOST`、`PGPORT`、`PGUSER`、`PGPASSWORD`の各環境変数はアップグレード後に削除されます。接続に必要なすべての情報を含む`DATABASE_URL`接続文字列を代わりに使用してください。

## トラブルシューティング

### アップグレード後のSSL接続エラー

アップグレード後、`The server does not support SSL connections`というエラーや、ソケットが予期せず切断されるエラーが表示される場合があります。これは、データベース接続コードがSSLハンドシェイクを強制している場合に発生します。NeonはすべてのSSL接続を必須としていましたが、HeliumはアプリのとなりにあるローカルでホストされているためSSLを使用しません。

この問題を修正するには、データベース接続のSSL設定を環境に応じて条件分岐させてください。これにより、アプリが開発（Helium）ではSSLなしで、本番（本番データベースがSSLを必要とする場合）ではSSLありで接続されるようになります。

<CodeGroup>
  ```js JavaScript theme={null}
  // 変更前（アップグレード後に動作しない）
  const pool = new Pool({
    connectionString: process.env.DATABASE_URL,
    ssl: { rejectUnauthorized: false },
  });

  // 変更後（開発・本番の両方で動作する）
  const pool = new Pool({
    connectionString: process.env.DATABASE_URL,
    ssl:
      process.env.NODE_ENV === "production"
        ? { rejectUnauthorized: false }
        : false,
  });
  ```
</CodeGroup>

<Tip>
  Drizzle、Prisma、SequelizeなどのORMを使用している場合、SSL設定を条件的に設定する方法についてそのドキュメントを確認してください。同じ原則が適用されます。開発データベースではSSLを無効にし、本番では有効にします。
</Tip>

## 共有データベースを使用しているデプロイ済みアプリ

Replit上でフォークまたはリミックスされた古いアプリは、元のアプリと開発データベースを共有している場合があります。レガシーNeonシステムでは、アプリをフォークすると元のアプリの`DATABASE_URL`がコピーされ、両方のアプリとその発行済みバージョンが同じデータベースに接続していました。

データベースアップグレード後、元のアプリのNeonデータベースが無効になります。発行済みアプリがその共有データベースのURLをまだ使用している場合、アプリが動作しなくなったりデータにアクセスできなくなる可能性があります。

<Warning>
  共有データベースは**2026年6月8日**に停止されます。永続的なデータ損失を防ぐため、それまでに発行済みアプリを更新してください。
</Warning>

### 次のステップ

発行済みアプリが影響を受ける場合は、専用のステップバイステップガイドに従ってください：

* [発行済みアプリの共有データベース問題を修正する](/references/data-and-storage/shared-database-migration)

このガイドでは以下を説明しています：

* 発行済みアプリが古いNeon接続を使用しているかどうかの確認方法
* **Create production database**を使った**Publish**または**Republish**の使用タイミング
* 発行済みアプリが古い共有データベースに依存している場合のデータの手動エクスポートとインポート方法
* ダウンタイム、アクティブな書き込み、カスタムPostgreSQLロールに関する重要な注意事項

## よくある質問

<Accordion title="アップグレード中のデータの安全性は？">
  はい。データはNeonからHeliumへコピーされます。転送中に移動または削除されることはありません。元のNeonデータベースはアップグレードが正常に完了するまで保持されます。データが変更または失われることはありません。
</Accordion>

<Accordion title="アップグレードをスキップまたは延期できますか？">
  アップグレードはReplit Appを開くと自動的に実行されます。問題が発生した場合は自動的にスキップされ、通常どおり作業を続けることができます。次回アプリを開いたときにアップグレードが再試行されます。
</Accordion>

<Accordion title="アップグレードが失敗しました。どうすればよいですか？">
  アップグレードが失敗した場合、既存のNeonデータベースでアプリを使い続けられるよう自動的にスキップされます。システムは次回アプリを開いたときにアップグレードを再試行します。複数回の試行後も問題が続く場合は、[サポートにお問い合わせ](https://replit.com/support)ください。
</Accordion>

<Accordion title="環境変数が変更されたのはなぜですか？">
  アップグレード後、`DATABASE_URL`はNeonではなく新しいHeliumデータベースを指すようになります。以前のNeon接続文字列はアプリのSecretsに`NEON_DATABASE_URL`として保存されます。接続に`DATABASE_URL`を使用しているコードがある場合、変更は不要です。変数は自動的に更新されます。
</Accordion>

<Accordion title="PGHOST、PGPORT、PGUSER、PGPASSWORDはどうなりましたか？">
  これらの個別環境変数はアップグレード後に削除されます。Heliumは`DATABASE_URL`環境変数を通じて接続情報を提供します。この変数にはアプリの接続に必要なすべての情報が含まれています。これらの個別変数を参照しているコードを`DATABASE_URL`を使用するよう更新してください。
</Accordion>

<Accordion title="古いNeonデータベースにアクセスできますか？">
  以前のNeon接続文字列は参照用としてアプリのSecretsに`NEON_DATABASE_URL`として保存されています。ほとんどの場合、古いNeonデータベースはアップグレード後に使用されなくなり、**2026年6月8日**に削除が予定されています。

  フォークまたはリミックスされたアプリの古い共有Neonデータベースをデプロイ済みアプリが使用していた場合、そのNeonデータベースはデータをエクスポートして独自の本番データベースに移行できるよう一時的に利用可能かもしれません。このアクセスは一時的なもので、共有データベースは**2026年6月8日**に削除されます。できるだけ早く発行済みアプリを更新してください。

  `NEON_DATABASE_URL`がSecretsにない場合や古い接続文字列の取得でサポートが必要な場合は、[サポートにお問い合わせ](https://replit.com/support)ください。
</Accordion>

<Accordion title="デプロイ済みまたは本番のアプリに影響しますか？">
  ほとんどの場合、影響はありません。本番データベースは個別に管理されており、このアップグレードの対象ではありません。ただし、発行済みアプリが（別の本番データベースではなく）開発データベースのURLを直接使用している場合、アップグレードが発行済みアプリに影響を与える可能性があります。これは、フォークまたはリミックスされた古いアプリで最も一般的で、フォークが元のアプリのデータベースを共有していた場合に起こります。修正方法については[発行済みアプリの共有データベース問題を修正する](/references/data-and-storage/shared-database-migration)を参照してください。
</Accordion>

## 次のステップ

* [データベース](/references/data-and-storage/sql-database)：ReplitのDatabaseツールとデータベース管理について学ぶ
* [本番データベース](/references/data-and-storage/production-databases)：本番データベースが開発データベースとどう異なるかを理解する
