Supabase 프로젝트 생성, 데이터를 csv로 업로드 한 후
python으로 조회하기 위해 sqlalchemy 와 관련 패키지를 설치했다.
pip install sqlalchemy psycopg2-binary
.env 파일에 DB 정보를 입력 후 데이터 조회를 시도했는데
from dotenv import load_dotenv
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker, declarative_base
import os
import psycopg2, traceback
load_dotenv()
user = os.environ["user"]
password = os.environ["password"]
host = os.environ["host"]
port = os.environ["port"]
dbname = os.environ["dbname"]
db = f"postgresql+psycopg2://{user}:{password}@{host}:{port}/{dbname}"
engine = create_engine(db)
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
if __name__ == "__main__":
try:
with engine.connect() as connection:
print("Connection successful!")
except Exception as e:
print(f"Failed to connect: {e}")
traceback.print_exc()
아래 메세지가 나왔다.
psycopg2.OperationalError
보통 이런 경우에는 DB 정보가 잘못 입력되어있는 경우, 정보 중 @ 같은 특수 문자들이 들어간 케이스에 해당되서
정보를 다시 확인, 이상이 없음을 확인했다.
supabase에서 ip 차단을 했는지 확인했는데, 모든 ip로 접속도 가능한 상황
어떤 문제 때문인지 한참을 찾았는데 설정을 잘 안 읽었던게 문제였다.
supabase에는 Direct connection 연결 방식과 Transaction pooler, Session pooler 연결 방식이 있는데
나는 Direct connection로 연결 시도했던 것이고, 이 방법은 IPv4로 연결이 안된다는 내용이 있었고
이 때문에 계속 오류가 났던 것
연결 방식을 Transaction pooler로 바꿔 연결 시도해보니 정상적으로 연결 되었다.
addon을 구입하면 가능하긴 한 듯
'Backend > Python' 카테고리의 다른 글
[Python] 날짜 시간대 변경하기 (1) | 2024.12.09 |
---|---|
[Python] 비트코인 자동매매 - 비동기 요청하기 (1) | 2024.06.18 |
[FastAPI] SQL Alchemy 연결 오류 해결 (0) | 2024.06.05 |
[Python] 비트코인 자동매매 - 백테스팅 (0) | 2024.05.15 |
[Python] 비트코인 자동매매 - 종목 선정 (0) | 2024.05.09 |