완숙의 블로그

[Django] Week 8-4 PostgreSQL Practice 본문

Programing Language/Web_Django

[Django] Week 8-4 PostgreSQL Practice

완숙 2019. 3. 12. 14:32

설치가 완료되었다면 pgAdmin 4 라는 앱이 설치가 되었을 것이다.

이녀석을 클릭하면,

 

스크린샷 2019-03-12 오후 1 03 10

 

이런녀석이 뜰거다.

 

sqlite를 써봤을 때와 같이 이녀석은 하나의 서버이다.

여기서 Sever 버튼을 누르고 그 아래 버튼을 누르면,

스크린샷 2019-03-12 오후 1 04 14

스크린샷 2019-03-12 오후 1 06 24

여기에 아까 처음에 기억해둔 패스워드를 넣어주자.

 

스크린샷 2019-03-12 오후 1 07 05

 

그럼 이런식으로 화면이 뜰텐데,

결국 이게 DB를 그래프로 깔끔하게 나타낸 상태이다.

 

이제 우리는 여기서 내가 데이터를 저장할 새로운 데이터베이스를 만들어볼 거다!

 

실습

  1. databases => create => Database 를 눌러주자.

     

    스크린샷 2019-03-12 오후 1 09 34

     

  2. 그리고 데이터베이스의 이름과 내용을 담아주자.

    Owner 는 이 데이터베이스의 사용자, superuser, admin 으로 생각하면 된다.

    스크린샷 2019-03-12 오후 1 13 18

     

  3. 저장을 눌러주면, Databases 에 새로운 데이터 베이스가 생겼음을 알 수 있다.

    여기까지 해주면, blog를 클릭했을 때 막 이상한게 많이 생겼다.

    지금은 그냥 넘어가고 자습으로 커버하도록 하자.

    스크린샷 2019-03-12 오후 1 16 11

     

  4. 우리는 여기서 이걸 어떻게 연결지을지만 생각해보자.

    장고 프로젝트에서 얘를 가리키고, 연결시키자.

    settings.py 로 가보자.

    # settings.py
    
    # Database
    # https://docs.djangoproject.com/en/2.1/ref/settings/#databases
    
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.sqlite3',
            'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
        }
    }
    

    여기서 우리가 명시해줘야 하는 것

    1. postgreSQL 을 사용한다.
    2. 그 중 blog 라는 이름의 DB를 사용한다.
    3. 그리고 그곳의 superuser는 postgres 라는 녀석이다.

     

  5. 자, 저기 settings.py 에 어떤 주소가 주석으로 적혀있는데, 여길 가보자.

    django DB

    공식 문서에 밑으로 가다보면 PostgreSQL 은 DB에 어떤식으로 적어주면 되는지 명시되어 있다.

    # official django documents
    
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.postgresql',
            'NAME': 'mydatabase',
            'USER': 'mydatabaseuser',
            'PASSWORD': 'mypassword',
            'HOST': '127.0.0.1',
            'PORT': '5432',
        }
    }
    

     

     

  6. 이 양식에 맞춰써주면 되니까,

    # settings.py
    
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.postgresql',
            'NAME': 'blog',
            'USER': 'postgres',
            'PASSWORD': '1234',
            'HOST': '127.0.0.1',	# or 'local host'
            'PORT': '5432',
        }
    }
    

     

  1. 자, 이 과정까지 완료했다면, 우리는 더이상 django의 기본 DB인

    DB.sqlite 가 아닌 PostgreSQL 로 DB를 넣을 준비가 되었다.

    즉, 가르킨 과정까지 완료했다.

     

  2. DB 를 수정하면 항상 해줘야 하는 일이,

    $ python manage.py migrate
    

    이걸 해주자.

     

  3. 이렇게하고 서버를 켜보자.

    그리고 /admin 으로 가서 로그인을 해보면!

    안될거야.

    왜냐면 superuser가 다 없어졌거든

    DB.sqlite 에 superuser도 다 저장이 되어 있는 거야.

    그래서 아무일도 안일어나.

    그래서 이제 새로 우리가 만들어줘야해.

    $ python manage.py createsuperuser
    

     

  1. 새로 계정을 만들어주고, 서버키고 /admin 으로 다시들어가보자.

    이제 잘 접속되는 것을 볼 수 있다.

    원래 우리가 만들어 줬던 Blogs 를 들어가보면 아무것도 없을 거야.

    왜냐면 DB를 바꿔줬거든.

     

  2. 이렇게까지 하면 연동이 되었다고 생각하면 된다.

     

  3. 그런데 만약에 다시 sqlite로 돌아가고 싶으면?

    settings.py 로 가서 예전꺼로 바꿔주고,

    다시 migrate 해주면 끝!

 

 

Comments