일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 프로그래머스 월간 코드 챌린지
- github actions
- 브랜디
- Firefox
- Word Cloud
- PostgreSQL 설치 시 에러
- pycharm
- c#
- 프로그래머스 월간 코드 챌린지 시즌1
- Codeforces
- 바이오데이터 엔지니어
- Spring Boot
- github
- 프로그래머스 코딩테스트 연습문제
- 스코페2021
- heroku
- 클린 코드
- 프로그래머스 코딩 테스트 연습
- PostgreSQL
- WPF
- 디자인 패턴
- 프로그래머스 코딩테스트 연습
- 애드센스
- 스프링 부트와 AWS로 혼자 구현하는 웹 서비스
- selenium
- Python
- 파이썬
- FastAPI
- git
- terraform
- Today
- Total
프로그래밍 연습하기
Heroku에서 Postgresql 데이터베이스 사용시 에러 본문
Heroku Postgres Add-on을 사용하여 Postgresql 데이터베이스를 사용해보려고 했습니다.
그런데 실행이 되지 않아 로그를 살펴보니 다음과 같은 에러가 떴습니다.
sqlalchemy.exc.NoSuchModuleError: Can't load plugin: sqlalchemy.dialects:postgres
찾아보니 Heroku에서 Database URI를 Heroku Config Vars로 기본적으로 제공해주는데,
값이 postgres:// 로 시작합니다.
그런데 SQLAlchemy가 버전업되면서 (1.4버전 이상) postgres URI scheme을 지원하지 않기 때문에,
postgresql로 바꾸어줘야 합니다.
그런데 Database URI Config Vars는 수정이 되지 않더라구요.
그래서 scheme만 고친 새로운 Config Var를 추가하여서 그것을 사용하려고 했는데,
알아보니
Please note that these credentials are not permanent.
Heroku rotates credentials periodically and updates applications where this database is attached.
데이터베이스 정보가 바뀔 수 있는 것 같더라구요.
기본적으로 제공되는 Database URI는 그에 맞게 생성이 될텐데
제가 새로 만든 Config Var는 바뀌지 않으니깐 이 방법은 오래 사용하지 못할 것 같았습니다.
https://help.heroku.com/ZKNTJQSK/why-is-sqlalchemy-1-4-x-not-connecting-to-heroku-postgres
그래서 이런 방식으로 아예 웹 애플리케이션 내부에서 값을 바꿔서 사용하기로 했습니다.
위 링크는 로그인을 해야 보여서 제가 살짝 바꿔서 쓰는 코드를 올립니다.
DATABASE_URL = os.getenv('DATABASE_URL')
if DATABASE_URL.startswith("postgres://"):
DATABASE_URL = DATABASE_URL.replace("postgres://", "postgresql://", 1)
'클라우드 > Heroku' 카테고리의 다른 글
Heroku 무료 서비스 종료 (0) | 2022.09.05 |
---|---|
Heroku Config Var 설정 시 주의점 (0) | 2021.11.02 |
Heroku를 이용한 무료 웹 호스팅 (0) | 2021.05.28 |