アプリのデータを 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 で:
- Railway のプロジェクトを開き(または作り)、使う環境を選びます。通常は production です。
- プロジェクトに Postgres のデータベースサービスを追加し、MonstarX から届くように public networking をオンにします。
- Railway の Account Settings → Tokens で、アカウントまたはワークスペースの API トークンを作ります。プロジェクトトークンではサービスを作成できないため、使えません。
MonstarX では、アプリのデータが MonstarX のデータベースにある必要があります。Supabase や Firestore にある場合は、先に戻してください。
アプリのデータを Railway の Postgres に移すには?
Section titled “アプリのデータを Railway の Postgres に移すには?”-
プロジェクトを開き、上部のバーで バックエンド をクリックし、続けて クラウド をクリックします。
-
コネクタ で Railway の横の 接続する をクリックします。このアプリのデータの保存先 で Railway(Postgres) を選んでも同じです。
-
フォームに入力します。
- アカウントまたはワークスペースの API トークン — Railway で作ったトークン。
- プロジェクト ID — Railway のプロジェクト設定にあります。
- 環境 ID — 同じ設定にあります。
- Postgres の公開接続文字列(任意) — Postgres サービスの
DATABASE_PUBLIC_URL。これを入れると移行が始まります。Railway へのデプロイだけが目的なら、空欄のままにします。
-
Railway を接続 をクリックします。MonstarX は、環境がそのプロジェクトのものであることと、データベースにテーブルを作れることを確認します。
-
チャットに このアプリのデータを Railway Postgres に移行 というカードが表示され、見つかったテーブルと行の数が示されます。アプリを移行する をクリックします。
-
カードに各ステップ(データの読み込み、テーブルの作成、行のコピー、すべて届いたかの確認、アプリの接続先の切り替え、アプリのコードの書き換え)が表示され、最後に アプリは Railway で動くようになりました と表示されます。
その後、バックエンドクラウド の データベース のカードに Railway で稼働 と表示されます。
データはどうなりますか?
Section titled “データはどうなりますか?”- すべてのテーブルと行が Railway の Postgres データベースに入ります。MonstarX は切り替える前に両方の行数を数え、合わなければ移行を止めて、アプリを元のままにします。
- MonstarX は以前のコピーを残します。 元に戻せるように、手を付けずに残します。
- アプリのコードは書き換えられます。 MonstarX が自分で送るビルドのリクエストで、Postgres 用に書き換えます。
- 移行中は新しいリクエストがキューで待ちます。カードの 停止 で移行を止められます。
元に戻せますか?
Section titled “元に戻せますか?”はい。バックエンドクラウド の データベース のカードで 元に戻す をクリックして確認します。MonstarX がすべてを自分のデータベースにコピーし直し、コードをもう一度書き換えます。Railway のデータベースはそのまま残ります。
知っておくと便利なこと
Section titled “知っておくと便利なこと”- トークンは MonstarX の手元にとどまります。 API トークン、プロジェクト ID、環境 ID は暗号化して保存され、MonstarX が Railway を管理するためだけに使います。アプリに渡されることはありません。
- 接続文字列が渡るのはアプリのサーバーだけです。 それも切り替えの後だけで、ブラウザに届くことはありません。
- アプリが使っている間は、Railway の接続を解除したり、データベースを変更したりできません。 先に元に戻してください。
- Railway での公開を停止しても、削除されるのは MonstarX が作ったサービスだけで、Postgres データベースは削除されません。
- インポートしたアプリは、自分のデータベースのコードをそのまま使います。MonstarX は接続文字列を
RAILWAY_DATABASE_URLとして渡しますが、データは移しません。 - Railway の非公開アドレスは使えません。 MonstarX がデータベースに届くには、公開接続文字列が必要です。
よくある質問
Section titled “よくある質問”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 を接続します。
ユーザーはもう一度登録する必要がありますか?
ありません。アカウントはアプリのデータベースの行なので、ほかのデータと一緒に移り、そのまま使えます。