[heroku] 헤로쿠 DB백업 후 로컬로 복원

헤로쿠 메인페이지
헤로쿠 메인페이지

헤로쿠앱에서 원격으로 작업하지 않고 로컬에서 작업후 업데이트하고자 했음.
로컬에은 sqlite3을 사용하였고 헤로쿠앱은 postgresSQL을 사용하고 있었기 때문에 로컬의 데이터베이스시스템을 변경할 필요가 있었다.

1. 헤로쿠에서 디비파일을 덤프뜨고 로컬로 내려받는다.

heroku pg:backups:capture
heroku pg:backups:download

2. 윈도우용 postgresSQL 설치 후 환경변수 등록
postgresSQl 다운로드
내pc>속성>고급시스템설정>고급>환경변수>시스템변수에서 path 편집>C:\Program Files\PostgreSQL\11\bin경로 추가

3. pgAdmin4에서 사용자 및 디비를 생성한다.
참고주소 : https://www.pgadmin.org/docs/pgadmin4/dev/pgadmin_user.html

4. 디비를 복원한다

pg_restore --verbose --clean --no-acl --no-owner -h localhost -U myuser -d mydb latest.dump

5. 헤로쿠 깃에서 앱 다운로드

heroku git:clone -a myapp

6. setting.py 파일 수정

django와 postgreSQL을 연결하기 위해서  psycopg2 라는 모듈이 필요함 pip list 명령어를 통해서 패키지 확인후 없으면 pip install  psycopg2
설치를 마치면 setting.py 파일의 데이터베이스부분을 수정

setting.py

DATABASES = {
    "default": {
	'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'databsename',
        'USER': 'username',
        'PASSWORD': 'password',
        'HOST': 'localhost',
        'PORT': '',
    }
}

7. django 실행

# 정적파일들을 해당앱으로 불러온다
python manage.py collectstatic 

# 로컬서버실행
heroku local web -f Procfile.windows

# 리눅스일경우
heroku local web

# 데이터베이스 마이그레이션
python .managr.py makemigrations
python .managr.py migrate

localhost:5000/admin으로 접속해 데이터 복원을 확인

2 thoughts on “[heroku] 헤로쿠 DB백업 후 로컬로 복원”

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다