コンテンツにスキップ

アプリのデータを Railway の Postgres に置く

要点Railway コネクタには2つの別々の役割があります。API トークン、プロジェクト ID、環境 ID を入れると、アプリを Railway にデプロイできます。さらに Railway の Postgres の公開接続文字列も入れると、MonstarX がアプリのテーブルと行をそこに移して確認し、それを使うようにアプリを書き換えます。「元に戻す」でデータを MonstarX に戻せます。

Railway は、アプリやデータベースを動かすためのクラウドプラットフォームです。MonstarX の Railway コネクタは、あなたのアプリを Railway のプロジェクトにつなぎ、次の2つの役割のどちらか、または両方に使えます。

  • アプリのデータを Railway の Postgres に置く — MonstarX のデータベースの代わりに、Railway 上の自分の Postgres データベースを使います。このページではこちらを説明します。
  • アプリを Railway にデプロイする — アプリの GitHub リポジトリから、Railway のプロジェクトでアプリを動かします。詳しくは ほかのホスティング先に公開する をご覧ください。

2つは独立しています。アプリを MonstarX で公開したままデータを Railway の Postgres に置くことも、その逆もできます。

Railway の Postgres を使うのはどんなときですか?

Section titled “Railway の Postgres を使うのはどんなときですか?”

すでに Railway を使っている、アプリのデータを自分のアカウントに置きたい、自分のデータベースツールでデータを扱いたい、といった場合に選びましょう。そうでなければ、準備がまったく不要な MonstarX のデータベースで十分です。詳しくは アプリのデータベース をご覧ください。

アプリがデータを置く場所は一度に1か所だけです。Railway の Postgres にすると、データは移行されるのであって、コピーが増えるわけではありません。

Railway で:

  1. Railway のプロジェクトを開き(または作り)、使う環境を選びます。通常は production です。
  2. プロジェクトに Postgres のデータベースサービスを追加し、MonstarX から届くように public networking をオンにします。
  3. Railway の Account Settings → Tokens で、アカウントまたはワークスペースの API トークンを作ります。プロジェクトトークンではサービスを作成できないため、使えません。

MonstarX では、アプリのデータが MonstarX のデータベースにある必要があります。Supabase や Firestore にある場合は、先に戻してください。

アプリのデータを Railway の Postgres に移すには?

Section titled “アプリのデータを Railway の Postgres に移すには?”
  1. プロジェクトを開き、上部のバーで バックエンド をクリックし、続けて クラウド をクリックします。

  2. コネクタ で Railway の横の 接続する をクリックします。このアプリのデータの保存先 で Railway(Postgres) を選んでも同じです。

  3. フォームに入力します。

    • アカウントまたはワークスペースの API トークン — Railway で作ったトークン。
    • プロジェクト ID — Railway のプロジェクト設定にあります。
    • 環境 ID — 同じ設定にあります。
    • Postgres の公開接続文字列(任意) — Postgres サービスの DATABASE_PUBLIC_URL。これを入れると移行が始まります。Railway へのデプロイだけが目的なら、空欄のままにします。
  4. Railway を接続 をクリックします。MonstarX は、環境がそのプロジェクトのものであることと、データベースにテーブルを作れることを確認します。

  5. チャットに このアプリのデータを Railway Postgres に移行 というカードが表示され、見つかったテーブルと行の数が示されます。アプリを移行する をクリックします。

  6. カードに各ステップ(データの読み込み、テーブルの作成、行のコピー、すべて届いたかの確認、アプリの接続先の切り替え、アプリのコードの書き換え)が表示され、最後に アプリは Railway で動くようになりました と表示されます。

その後、バックエンドクラウド の データベース のカードに Railway で稼働 と表示されます。

  • すべてのテーブルと行が Railway の Postgres データベースに入ります。MonstarX は切り替える前に両方の行数を数え、合わなければ移行を止めて、アプリを元のままにします。
  • MonstarX は以前のコピーを残します。 元に戻せるように、手を付けずに残します。
  • アプリのコードは書き換えられます。 MonstarX が自分で送るビルドのリクエストで、Postgres 用に書き換えます。
  • 移行中は新しいリクエストがキューで待ちます。カードの 停止 で移行を止められます。

はい。バックエンドクラウド の データベース のカードで 元に戻す をクリックして確認します。MonstarX がすべてを自分のデータベースにコピーし直し、コードをもう一度書き換えます。Railway のデータベースはそのまま残ります。

  • トークンは MonstarX の手元にとどまります。 API トークン、プロジェクト ID、環境 ID は暗号化して保存され、MonstarX が Railway を管理するためだけに使います。アプリに渡されることはありません。
  • 接続文字列が渡るのはアプリのサーバーだけです。 それも切り替えの後だけで、ブラウザに届くことはありません。
  • アプリが使っている間は、Railway の接続を解除したり、データベースを変更したりできません。 先に元に戻してください。
  • Railway での公開を停止しても、削除されるのは MonstarX が作ったサービスだけで、Postgres データベースは削除されません。
  • インポートしたアプリは、自分のデータベースのコードをそのまま使います。MonstarX は接続文字列を RAILWAY_DATABASE_URL として渡しますが、データは移しません。
  • Railway の非公開アドレスは使えません。 MonstarX がデータベースに届くには、公開接続文字列が必要です。
Railway の Postgres を使うには、Railway にデプロイする必要がありますか?

必要ありません。2つは独立しています。データを Railway の Postgres に置いたまま、アプリは MonstarX で公開し続けられます。

どの接続文字列を貼り付ければよいですか?

Postgres サービスの public networking をオンにしたうえで、その DATABASE_PUBLIC_URL を貼り付けます。プライベートネットワークのアドレスには MonstarX から届きません。

トークンが拒否されたのはなぜですか?

Railway のプロジェクトトークンではサービスを作成できません。代わりに、Railway の Account Settings → Tokens でアカウントまたはワークスペースのトークンを作ってください。

Supabase から Railway に切り替えられますか?

はい、2回の移行でできます。まず 元に戻す でデータを MonstarX のデータベースに戻し、それから Railway の Postgres を接続します。

ユーザーはもう一度登録する必要がありますか?

ありません。アカウントはアプリのデータベースの行なので、ほかのデータと一緒に移り、そのまま使えます。