Development/Django(멋쟁이사자처럼 7기 운영진)

[멋사7기] 8주차 - 3, 4. PostgreSQL 연동 이론, 설치, 실습

안다희 2019. 3. 1. 14:56
728x90


    


다른 데이터베이스와 연동!!


기본 데이터베이스 : SQLite

그런데 더 큰 스케일의 db필요해


ex) oracle (유료), mysql(무료. 점유율 높음), PostgreSQL(오늘 할 것. 무료. 과정 쉬움. 직관적인 명령어)

mysql도 추천!!


장고프로젝트와 db는 별개다. db도 여러개가 있을 수 있어




- 어떤 db를 쓸 것인지 명시 -> settings.py DATABASE에 default로 sqlite가 있을 것이야


가리키는 것을 settings.py에서 해 (나 이 데이터베이스 쓸거야)

연결시켜주는 것을 migrate로 해


- 다른 db 연결하기

1. 다른 db 설치

2. 다른 db 가리키기 (settings.py)

3. 연결 (migrate)




==실습==

지금까지 만들어왔던 db는 db.sqlite3에 저장되어있는 db들임.

이제 postgres로 바꿔치기 해볼거야


1) google에 postgres for windows 치면 나오는 url로 가기

https://www.postgresql.org/download/windows/


옆에 downloads 누르고, Windows 누르기


클릭!


2) 설치하기

stack builder는 설치 안해도됨


3) 시작메뉴에 pgAdmin 4 검색 - postgre admin 페이지임

이제 뜨는 페이지가 하나의 서버인거야!


4)




클릭


비번 입력






이제 우리의 django 프로젝트와 이 postrgre를 연결시켜볼거여

자세한사용법운 나중에해봐~ 넘겨도됑

오늘은 연결에 집중



6) 가리키게하고 연결해야겠지

  settings.py

# Database
# https://docs.djangoproject.com/en/2.1/ref/settings/#databases

# dictionary임
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}

 이게 보일거야

저 링크 따라가보면 어떻게 하는지 나와있아



DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'blog',
'USER': 'postgres',
'PASSWORD': 'ㅎㅎㅎ',
'HOST': '127.0.0.1',
'PORT': '5432',
}
}

이렇게 써주면 되겠지요



그리고

python manage.py migrate



그리고 서버돌려보면 아무 db도 없는게 정상!


admin 계정도 db에 있는거니까 admin 들어가도 로그인 안될거야


7) createsuperuser

python manage.py createsuperuser

그럼 이제 admin 들어가보면 blog 비어있겠지


8) db.sqlite로 다시 돌아가고 싶어!

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}

settings.py에서 다시 이렇게 해주고

다시 migrate

그리고 다시 runserver

admin은 sqlite에서 사용했던 admin으로 다시 로그인 해야겠지



출처: https://mingos-habitat.tistory.com/34 [밍고의서식지:티스토리]