LoginSignup
1
1

More than 1 year has passed since last update.

HerokuにGitHub経由でDjangoアプリをデプロイする。DBにはPostgreを使う。(2022.3.26)

Posted at

最近、djangoアプリを使える様に練習中です。簡単な事から始めて徐々に自分が実装したい物を作りたいと思っています。

背景

前回、デプロイするアプリにCSSを反映する事が出来ました。データベースにはSQLite3を使いましたが、webアプリとして使いたい時はPostgreを使った方が便利な様です。実際SQLite3では、いろんなデバイスから入力した際、きちんと保存できていない事がありました。

前回の投稿
デプロイするDjangoアプリ(メモアプリ)にCSSを反映させる(2022.3.19)

目的

今回はPostgreを使ってデプロイしたいです。

方法

今回は既に作っていたアプリのDBをSQLite3からPostgreに変更します。基本的には

こちら(DjangoにPostgreSQLデータベースを導入する方法)を参考にしました。

Postgreを使う設定

  1. settings.pyの修正をします。DBにPostgreを使える様に書き換えるのですが、今回は.envファイルを使って環境設定を書きたいと思います。
  2. .envの追加をします。こちらにPostgreの設定を記述します。

.envファイルの作成

アプリのルートディレクトリに「.env」ファイルを作成して、下の様に記述します。詳しくは

参考2をご覧下さい。

appディレクトリ/.env
DATABASE_URL=postgres://test_user:test_password@localhost:/test_db

Postgreのインストール

ローカルにPostgreSQL データベースを構築します。やってて思いましたが、実際に使うのはサーバーのDBなのでこれはいらないかもしれません。とは言っても動作確認はしたいのでローカルに入れておくのは良いと思います。こちらも詳しくは

参考2をご覧下さい。

ubuntu
$ sudo apt install postgresql
$ sudo service postgresql start
$ systemctl enable postgresql
$ sudo -u postgres psql

本番環境でのmigrate

GitHubとHerokuを連携してDjangoアプリをデプロイする(2022.3.15)では、SQLite3を使っており、デプロイする時にmigrateをされていたのかもしれません。この時は問題なかったのですが、今回はデプロイ後にアプリを開いて見るとエラーが出ました。

image.png

仕方がないので、ローカルからHerokuコマンドでmigrateしました。

image.png

結果

これで問題なく動くようになったので、しばらくはこれで運用したいと思います。

image.png

DBが何を使っているのかは確認の仕方が分からなくて出来ていませんが、状況的にPostgreを使ってる事が考え易いので、今回の目的は達成出来ていると考えています。

考察

環境設定ファイルを「.env」にまとめていますが、肝心の隠匿化が出来ていません。恐らく、「.gitignore」に入れてgithubに上げれば良いんだと思いますが、それもそのうち調べて実装したいと思います。

課題

ディープラーニング使った簡単なアプリをデプロイしたいです。まずは文字認識くらいですかね。

参考

  1. デプロイするDjangoアプリ(メモアプリ)にCSSを反映させる(2022.3.19)
  2. DjangoにPostgreSQLデータベースを導入する方法
1
1
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
1
1