0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【初心者向け】RailwayにDBのみデプロイした件

Last updated at Posted at 2024-10-13

はじめに

みなさん、こんにちは、こんばんは!
駆け出しエンジニア ジンです!

今回は、
フロントはVite+React
APIとしてPythonを使うプロダクトを
作成していたのですが、

急遽DB連携が必要となったので
API兼バックエンドとしてPythonに追記し、
DBを単独でデプロイしました。
使用DBはMySQLです。

この時APIとしてコードを書いていたPythonは
既にRenderでデプロイしていました。
(フリープランを利用したく、、、、。)

RenderではDBは直接セットアップはできなかったので、
今回はRailwayにDB作成し、接続する形をとりました。
その時困ったことや、進め方を記しておこうと思います。

DBのセットアップ

Railwayに接続
image.png

会員登録後(GitHubアカウントで登録できます。)
Start a New Projectをクリック

image.png

私の場合はDeploy MySQLを選択
(プロジェクトごとであれば、GitHubからのデプロイでOK)

image.png

そうこうしているうちにデプロイは終了。
(早すぎ・・・。)

ただ、デプロイしただけで接続も出来てなければ、
テーブルもありません。

接続について

image.png

接続において重要なのはココ
Variablesの部分に、
接続すべき情報が満載。

特に確認しておくべきは、
MYSQLHOST=
MYSQLPORT=
MYSQLUSER=
MYSQLPASSWORD=
MYSQLDATABASE=

SECRET_KEY=任意で設定

これらは接続のために必要で、 バックエンドの.envファイルにて保存する情報 です。
これらはここに書いてあります。
***となっているところをうつすだけです。

【ここで一度詰んだ】
この時、DBとバックエンドのデプロイを分けていたことで、
バックエンドで上記情報を記入しても、
なぜかDBに接続できない

この時の接続テストは、
image.png
MySQL Workbenchを使用。

Connectionsの+を押すと、

image.png
この画面が出るので、
Connection Name (なんでもOK)
Hostname
Port
Username
Password
Default Schema(書かなくてもいいけど、書くならMYSQLDATABASEのところ)

なぜこのworkbenchを使ったかは、
まず接続できない原因が、
DBなのか、バックエンドのコードミスなのかを
ハッキリさせたかったから
です。
(自身の接続情報に間違いがあると断定できる)

つながらない

そう、つながらなかったんです。
結論から言うと、
今回記載する内容を変えなくてはいけなかった部分は
HostnameとPortでした。

image.png
ここの13Railway~~
と書いてあるところをクリックすると、
アコーディオン式に出てくる情報があるのですが、
image.png

ここの2と3行目にある、
RAILWAY_TCP_PROXY_DOMAIN
がHostname

RAILWAY_TCP_PROXY_PORT
がPort

として本来記載しなければなりませんでした。

結局バックエンドを別の場所にデプロイしてるので、このDBへは外部からの接続をしなくてはならないので、
外部接続用のHostnameとPortが上記になる様子
(ここに気づくまでに数時間かかってました。)

これらを置き換えて入力すると、
無事に、接続成功と出ました。

これで残りは、テーブル作成を残すのみでした。

テーブル作成

テーブルなどは間違いなく、XAMPP環境化でphpMyAdminそもそも設定しておけば間違いないと思います。バックアップとれば、SQLエディタで簡単コピーできるので省略します。

※一言
XAMPPのApacheがなぜか私の場合起動せず、
困ったことになっていたところ、
先ほど紹介したWorkbenchで接続後、
SQLエディタで簡単にテーブル、カラム作成ができました。

もちろんRailway上でもテーブル作成はできますが、(Dataの項目からテーブル作成)
一つ一つ手入力になるのでおススメできないですね、、、。
SQLエディタのほうが100倍速いです。(体感)

まとめ

デプロイは初心者にはやはり山場だなぁと改めて感じました。
デプロイ自体は秒でできるので、簡単じゃん!と思っていたのに、接続にこれだけ手間取るとは、、、

その後も、接続できているのに、
バックエンドのコードが危ういと、
サーバーエラーになったりします。
私の場合は、
CORS の設定や
conn の設定が宜しくなく、
何度も、修正⇔再起動⇔リデプロイ
を繰り返していたので時間がかかりました。

早めに終わらせておくことに間違いはないですね、、。

デプロイ先を分けると、それぞれで管理しやすいメリットこそありますが、接続面では、まだまだ知識が必要そうです!

勉強します!
ありがとうございました!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?