sota0121 / django-sample

learn how to django with building sample app.
Apache License 2.0
0 stars 0 forks source link

django tutorial ( dev: docker / db: postgres ) #3

Open sota0121 opened 3 years ago

sota0121 commented 3 years ago

Relational PullReq

2

See

sota0121 commented 3 years ago

django new project

django-admin startproject mysite

then

mysite/
    manage.py
    mysite/
        __init__.py
        settings.py
        urls.py
        asgi.py
        wsgi.py

django new app

python manage.py startapp {app-name}

then

mysite/
    manage.py
    mysite/
    polls/
        __init__.py
        admin.py
        apps.py
        migrations/
            __init__.py
        models.py
        tests.py
        views.py 
sota0121 commented 3 years ago

わかったこと

sota0121 commented 3 years ago

Database setup

■DBを SQLite (default) --> Postgres に変える

参考

postgres / root user note

You must log in postgres container as a not root user but Postgres user.

docker exec -it --user $postgres django-sample_db_1 bash

じゃないとpsqlコマンドが失敗する。 なぜなら、psqlはrootユーザーを許可しないから。

set up はこれがかんたんにかいてる https://datacoach.me/data/tips/docker-django/

why django >> postgres container connection refused ?

ここまでやって、postgresに接続できなかった。

django container >> postgres conainer に接続できなかった。具体的には以下のエラーメッセージを得た。

django.db.utils.OperationalError: colud not connect to server : Connection refused Is the server running on host "0.0.0.0" and accepting TCP/IP connections on port 5432 ?

これの原因は明白だった。settings.py のDATABASES において、HOST='0.0.0.0' と書いていたこと。これをdocker-composeで指定しているコンテナの名前(コンテナ名とは違うけど、なんて言えばいいんだろう)とおなじdb にしたらいけた。 docker container 間の通信はcontainer 名で特定できるということなので。


then

django >> postgres connection is success

commit

sota0121 commented 3 years ago

Create Models

todo