はじめに
みなさん、こんにちは、こんばんは!
駆け出しエンジニア ジンです!
今回は、
フロントはVite+React
APIとしてPythonを使うプロダクトを
作成していたのですが、
急遽DB連携が必要となったので
API兼バックエンドとしてPythonに追記し、
DBを単独でデプロイしました。
使用DBはMySQLです。
この時APIとしてコードを書いていたPythonは
既にRenderでデプロイしていました。
(フリープランを利用したく、、、、。)
RenderではDBは直接セットアップはできなかったので、
今回はRailwayにDB作成し、接続する形をとりました。
その時困ったことや、進め方を記しておこうと思います。
DBのセットアップ
会員登録後(GitHubアカウントで登録できます。)
Start a New Projectをクリック
私の場合はDeploy MySQLを選択
(プロジェクトごとであれば、GitHubからのデプロイでOK)
そうこうしているうちにデプロイは終了。
(早すぎ・・・。)
ただ、デプロイしただけで接続も出来てなければ、
テーブルもありません。
接続について
接続において重要なのはココ
Variablesの部分に、
接続すべき情報が満載。
特に確認しておくべきは、
MYSQLHOST=
MYSQLPORT=
MYSQLUSER=
MYSQLPASSWORD=
MYSQLDATABASE=
SECRET_KEY=任意で設定
これらは接続のために必要で、 バックエンドの.envファイルにて保存する情報 です。
これらはここに書いてあります。
***となっているところをうつすだけです。
【ここで一度詰んだ】
この時、DBとバックエンドのデプロイを分けていたことで、
バックエンドで上記情報を記入しても、
なぜかDBに接続できない。
この時の接続テストは、
MySQL Workbenchを使用。
Connectionsの+を押すと、
この画面が出るので、
Connection Name (なんでもOK)
Hostname
Port
Username
Password
Default Schema(書かなくてもいいけど、書くならMYSQLDATABASEのところ)
なぜこのworkbenchを使ったかは、
まず接続できない原因が、
DBなのか、バックエンドのコードミスなのかを
ハッキリさせたかったからです。
(自身の接続情報に間違いがあると断定できる)
つながらない
そう、つながらなかったんです。
結論から言うと、
今回記載する内容を変えなくてはいけなかった部分は
HostnameとPortでした。
ここの13Railway~~
と書いてあるところをクリックすると、
アコーディオン式に出てくる情報があるのですが、
ここの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 の設定が宜しくなく、
何度も、修正⇔再起動⇔リデプロイ
を繰り返していたので時間がかかりました。
早めに終わらせておくことに間違いはないですね、、。
デプロイ先を分けると、それぞれで管理しやすいメリットこそありますが、接続面では、まだまだ知識が必要そうです!
勉強します!
ありがとうございました!