皆様ごきげんよう。構築中のサービスをAWSとHerokuのどちらでデプロイするか悩みましたが、一旦規模が小さいサービスを展開する為、インフラ管理が楽なHerokuを選択してみました。デプロイする為の初期設定と、デプロイ時にエンカウントした問題がいくつかあったのでナレッジを残しておきます。少しでも参考になりましたら幸いです。 前提情報 ー コードはGithubで管理しています。ー Powershellを使用。ー Herokuコマンドも利用できるように、Heroku CLIをインストール済。 CollectStatic問題 Staticファイルを一か所にまとめるプロセスがHeroku側で走るのですが、一か所にまとめられないとエラーがでる場合があります。この場合は対応方法を検討する必要がありますが、一旦この処理自体を実行しないように設定する事も可能です。その際はコマンドプロンプト経由で以下コマンドを実行。 ※設定を戻す際には1を0に設定すればOK Tkinterモジュールが見つからない問題 そもそもTkinterモジュールを自分の意志で設定していなかったのですが、プロジェクト全体のmodule.pyファイルを確認した所、一番最初の行にDjango側の初期設定の関係で記載されている事が確認できました。TkinterモジュールはPythonでGUIを取り扱うのに必要なモジュールで、Herokuでは取り扱っていないモジュールでした。今回のプロジェクトではGUIを利用していないので、この行はコメントアウトしておきました。※結構ネットではまっている方が多いのでHeroku側で対応できるようにした方が良いかもです ローカルのMysqlに設定されているSocketで接続できません問題 ローカルPCで動作確認をする際には問題なく動作しましたが、デプロイする際にそもそもMysqlをHeroku側で準備しておかないとエラーが出てしまいます。その為、アプリケーション側とHeroku側で事前にDBの対応が必要です。 まずはHeroku側で、JawsDB MysqlをAdd-Onsマーケット経由でインストールします。2025年8月時点では無料プランがあったので、そちらを利用してみました。 Powershellで、コマンド「 heroku config」と実行するとDBのURLも含まれた情報が取得できるのでそこで接続URLを確認します。接続URLはDjango側でDB設定しているところのURLの値として記入(プロジェクト全体の設定が記載されているsettings.py、もしくは.envファイル)。 ちゃんとJawsDB側で、ユーザー設定を行っておきましょう。[…]