HEROKUでDB機能のあるDjango製アプリのデプロイする時によくあるエラー
テーブルエラー
〇〇 does not exist
テーブルが存在していないのでDBの接続先のPATHを確認するかmigrateしましょう。
HerokuでDBをMigrateするのは以下のコマンドです。
$ heroku run --app <プロジェクト名> python manage.py migrate --fake-initial
psycopgの互換性エラー
database connection isn’t set to UTC
解決法はpsycopg2のバージョンを調整することです。
requirement.txtでpsycopg2を以下のバージョンに指定すると解決します。
psycopg2==2.8.6
終わり:余談
大学の課題で作ったデモや転職の際のポートフォリオであればsqlite3でそのままデプロイすればよいですが、ちゃんと運用したい場合はsqlite3はNGです。
というのもwebアプリのデータを更新するような使用の場合はこの方法でsqlite3を行っても、HEROKUの契約プラン次第で24時間ごとにデータがリセットされる(デプロイ時の状態に戻る)のでPosgreSQLに接続した方が良いです。
関連記事:【Python】Herokuのデータベースにスクレイピングしたデータを保存する
本番環境へのデプロイ時のDB設定はいつもハマるのでめんどくさい・・・
参照:https://kimbio.info/django-db-utils-programmingerror/
参照:https://stackoverflow.com/questions/68024060/assertionerror-database-connection-isnt-set-to-utc
コメント