メインコンテンツへスキップ

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でフォークまたはリミックスされた古いアプリで発生する可能性があります。レガシーNeonのセットアップでは、フォークが元のアプリのデータベース接続を引き続き使用できました。Replitが開発データベースと本番データベースを完全に分離する移行の一環として、古い共有開発データベースが削除され、発行済みアプリは独自の本番データベースに移行する必要があります。 発行済みアプリにデータベース接続エラーが表示されている場合、またはSecretsパネルのDATABASE_URLがまだneon.techを指している場合は、このガイドを使用してください。
古い共有データベースは2026年6月1日にシャットダウンされます。ダウンタイムや永続的なデータ損失を避けるために、それまでに発行済みアプリを更新してください。

開始前に

発行済みアプリには独自の本番データベースが必要です。データベースパネルに表示される開発データベースは、発行済みアプリから直接使用すべきではありません。
開発データベースを表示するデータベースパネル
これを修正するには、まず自分の状況を確認します:
  • ケース1: 必要なデータが既にアプリのデータベースパネルに表示されている。
  • ケース2: 発行済みアプリがまだ古い共有開発データベースを使用しているため、データベースパネルに必要なデータが表示されていない。

発行済みアプリが共有データベースを使用しているかどうかの確認方法

以下のいずれかに該当する場合、発行済みアプリが影響を受けています:
  • データベースのアップグレード後に発行済みアプリにデータベース接続エラーが表示される
  • アプリが2026年1月9日以前にデータベースを持つ別のアプリからリミックスされた

発行済みアプリがソースアプリの共有データベースを使用しているかどうかの確認方法

ステップ1:ソースアプリのデータベースパネルを開く

DATABASE_URLを表示するシークレットパネル
NEON_DATABASE_URLの値を取得するか、NEON_DATABASE_URLが存在しない場合はDATABASE_URLを使用します。
すべての影響を受けるアプリにNEON_DATABASE_URLがあるわけではありません。それが見つからない場合は、まだneon.techを指している場合は発行済みアプリのSecretsから現在のDATABASE_URLを使用してください。

ステップ2:発行済みアプリのPublishパネルを開く

DATABASE_URLを表示する発行済みアプリのシークレット
発行済みアプリのデータベースURLを確認するには:
  1. ReplitでアプリをAIで開く
  2. 発行パネルを開く
  3. 設定を調整を開く
  4. シークレットを開く
  5. DATABASE_URLを探す

ステップ3:ステップ1のソースアプリとステップ2のリミックスアプリのデータベースURLを比較する

同じ場合、発行済みアプリはソースアプリの共有Neon開発データベースを使用しています。

ソースアプリから発行済みアプリにデータをコピーする方法

発行済みアプリがソースアプリの共有開発データベースを使用していることを確認した後、次のステップは必要なデータを発行済みアプリに転送することです。考慮すべき2つのシナリオがあります:
  • ケース1:発行済みアプリのデータベースパネルに必要なデータが既に含まれている。
  • ケース2:発行済みアプリのデータベースパネルに必要なデータが含まれていない。

ケース1:データベースパネルに必要なデータが既に表示されている場合

アプリのデータベースパネルに必要なデータが既に表示されている場合、これが最も簡単な方法です。

ステップ1:データが存在することを確認する

データ行を表示するデータベースパネル
発行済みアプリのデータベースパネルを開き、必要なテーブルとデータがあることを確認します。 データベースパネルに必要なデータが表示されない場合は、ここで一時停止してください。ケース2の手順に従って、データを適切にマイグレーションしてください。

ステップ2:本番データベースで発行または再発行する

  1. プロジェクトエディターでアプリを開く
  2. 発行または再発行を選択する
  3. 本番データベースを作成をオンにする
  4. 現在の開発データで本番データベースをセットアップをオンにする
  5. 発行フローを完了する
発行すると、発行済みアプリの新しいバージョンが作成され、DATABASE_URLが自動的に新しい本番データベースに設定されます。このフロー中にそのシークレットを手動で更新する必要はありません。
本番データベース作成オプションを表示する発行設定
本番にコピーすると、既存の本番データが上書きされます。詳細については本番データベースを参照してください。

ステップ3:発行済みアプリを確認する

発行済みアプリを開いて、データにアクセスできてアプリが正しく動作することを確認します。

ケース2:データベースパネルに必要なデータが表示されていない場合

発行済みアプリのデータベースパネルに必要なデータが表示されていない場合は、以下の手順に従ってデータをエクスポートします。 発行済みアプリがまだ別のアプリのデータベースに接続されている場合、データベースパネルに「外部データベースが検出されました」という警告が表示されます。
外部データベースが検出されたことを表示するデータベースパネル
ユーザーがまだアプリを使用して新しいデータを保存している場合は、データをエクスポートする前に短いメンテナンスウィンドウを計画してください。

ステップ1:古いデータベースからデータをエクスポートする

pg_dumpの例
プロジェクトエディターでシェルを開き、以下を実行します:
pg_dump -Fc "database_url" --no-owner --no-privileges -f backup.dump
database_urlステップ1:ソースアプリのデータベースパネルを開くで取得したデータベースURLです。

ステップ2:アプリのSecretsから古いDATABASE_URLを削除する

シークレットパネルの例
  1. プロジェクトエディターでシークレットツールを開く
  2. 古いDATABASE_URLを見つける
  3. 削除する
  4. ページを更新するかデータベースパネルを再度開く
この後、アプリは古い共有データベースを参照するのをやめ、現在の開発データベースを再度使用するようになります。

ステップ3:現在の開発データベースにデータをインポートする

pg_restoreの例
古いDATABASE_URLシークレットが削除されると、アプリの現在の開発データベースがプロジェクトエディターで$DATABASE_URLとして再び利用可能になります。 プロジェクトエディターのシェルに戻り、以下を実行します:
pg_restore --clean --if-exists --single-transaction --no-owner --no-privileges --exit-on-error -d "$DATABASE_URL" backup.dump
これにより、エクスポートしたデータがアプリの現在の開発データベースに読み込まれます。

ステップ5:ケース1に従って本番データベースで発行または再発行する

データベースパネルに正しいデータが表示されたら、ケース1に従って本番データベースを作成してそのデータを本番にコピーして発行または再発行します。

ステップ6:発行済みアプリを確認する

成功したエクスポート
発行済みアプリを開いて、データにアクセスできてアプリが正しく動作することを確認します。

トラブルシューティング

テーブルが既に存在するためインポートが失敗する

上記のpg_restore --clean --if-existsコマンドは、ダンプから一致するオブジェクトを復元前にドロップして再作成します。

ロールまたはポリシーエラーでインポートが失敗する

データベースがカスタムのPostgreSQLロールまたはロールベースのポリシーを使用している場合、それらのロールが新しいデータベースにまだ存在しないため、インポートが失敗する可能性があります。 Replitの自動Heliumマイグレーションは復元前にロールスタブを再作成しようとしますが、上記の手動プロセスは行いません。pg_restore中にロール関連のエラーが発生した場合は、サポートに問い合わせてください

アプリを既に修正した場合

発行済みアプリに既に独自の本番データベースがあり、正しく動作している場合は、他に何もする必要はありません。

さらにサポートが必要な場合

どのケースが自分のアプリに適用されるかわからない場合、またはマイグレーション中に問題が発生した場合は、サポートに問い合わせてください

関連ドキュメント