postgresql 관련 문의드립니다
기존에 파이보 생성 따라서
로컬에서는 python manage.py runserver 구동시키면 잘 뜨고 있는데요
문제는 라이트세일 적용시 문제가 있어서 글 남깁니다
처음 프로젝트 시작부터 쿠키커터 사용으로
데이터베이스 디폴트가 이미 postgresql 에 저장되어지고 있는 형태였는데요
그리고 postgresql 으로 마이그레이션 보내졌고요
.
.
.
1. 이 페이지 처음에 설명하신대로 직접 설치 후 적용시키려면 환경에 따라 너무 어려워지는 그런 걸 제가 하고 있는 건가요?
https://wikidocs.net/81083
.
.
.
2. 현재 base.py 내에서 프로젝트 시작부터 설정해줬던 부분은
DATABASES = {
"default": env.db("DATABASE_URL", default="postgres://postgres:204220@localhost:5432/projectname"),
}
이 부분만 추가하여 구동했었는데요
라이트세일 내에서 인스턴스 + 데이터베이스 두 개 생성 이후에
이 부분 삭제하지 않은 상태에서
prod.py 에다가
(... 생략 ...)
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'pybo',
'USER': 'dbmasteruser',
'PASSWORD': '=eKmx$xxymnxxwNCxxx$SX55*RdjKK1G&',
'HOST': 'ls-be78fd2cxxxxx614420dxxxxx6b156e2c9.cqlcyugj7ibs.ap-northeast-2.rds.amazonaws.com',
'PORT': '5432',
}
}
이 부분만 제가 데이터생성시 받은 값들로 변경하여 저장하고 라이트세일 내에서 인스턴스 구동시키면
django.db.utils.OperationalError: connection to server at "localhost" (127.0.0.1), port 543
2 failed: Connection refused
Is the server running on that host and accepting TCP/IP connections?
이렇게 오류가 뜨고 있는 상황입니다
.
.
.
3. 만약 제가 이미 postgresql 을 직접설치하여 사용하고 있는 상황에서 1번에서 질문한 그 설정들이 어려운 거라면
현재 상황에서 어떻게 해야 하는 지 궁금합니다
https://wikidocs.net/81083
이 플라스크 강의를 보면
기존 마이그레이션 되어 있던 디렉토리를 삭제하고
데이터베이스 초기화한 이후에 다시 마이그레이션 하는 방법으로 하길래
그렇게 해보려고 해도 잘 안 되더라고요
그리고 제 코드에서
base.py 의 데이터베이스 삭제 하고
base.py 와 prod.py 모두에 라이트세일 데이터베이스 항목 추가 하고 runserver 하면
105: RuntimeWarning: Got an error checking a consistent migration history performed for database connection 'default': connection to server at "ls-5c4b2a819003733979cf9b0810e21990c8d94930.cu6xdyobohgp.ap-northeast-2.rds.amazonaws.com" (172.26.3.78), port 5432 failed: Operation timed out
Is the server running on that host and accepting TCP/IP connections?
이렇게도 뜹니다
.
.
.
.
.
.
.
.
정리해보자면
1. 현재 postgresql 직접 설치 하였고 postgresql
DATABASES = {
"default": env.db("DATABASE_URL", default="postgres://postgres:204220@localhost:5432/projectname"),
}
이렇게 연결하여 테이블 생성되어 있음
-
현재 데이터베이스 관련 코드는
-
base.py 내의
DATABASES = {
"default": env.db("DATABASE_URL", default="postgres://postgres:204220@localhost:5432/projectname"),
}
DATABASES["default"]["ATOMIC_REQUESTS"] = True
- prod.py 내의
DATABASES["default"] = env.db("DATABASE_URL") # noqa F405
DATABASES["default"]["ATOMIC_REQUESTS"] = True # noqa F405
DATABASES["default"]["CONN_MAX_AGE"] = env.int("CONN_MAX_AGE", default=60) # noqa F405
이렇게 되어 있는 상황입니다
추가로
이 관련 에러 내용도 포함되어 있어서 남깁니다
ALLOWED_HOSTS = ["localhost", "0.0.0.0", "127.0.0.1"]
라이트세일 - 인스턴스 내에서 구동시키려면 어떤 수정이 필요한 지 궁금합니다
찾아보니
기존 postgresql 을 외부접속 허용
* 로 바꾼다든지 하는 것도 있는 것 같던데
그런 것 상관없이 기존이 postsql로 마이그레이션 해두었던 테이블은 존재하지 않아도 되서
라이트세일 내에 테이블을 어떻게 생성하는 지가 가장 궁금합니다
파이보 관련 강의 너무나도 잘 보았습니다
감사합니다
지식이 짧은 상태에서의 질문이라 설명하기 괜찮으실 지 모르겠습니다
ye 님 1569
M 2022년 2월 12일 9:31 오후
1개의 답변이 있습니다. 1 / 1 Page
안녕하세요.
localhost 5432 포트 접근이 거부되는 것이 문제로 보이네요.
다음 URL을 참조해 보세요.
박응용 님
2022년 2월 12일 10:19 오후