개요
해당 글은 Sqlalchemy 공식문서를 정리한 것이다.
Sqlalchemy에서 postgresql에 지원하는 여러가지 Driver 들에 대해 알아본다.
postgresql은 psycopg2, pg8000, asyncpg 다.
1. psycopg2
공식 문서 : https://pypi.org/project/psycopg2/
특징
- fast-executions-helpers 라는 성능 개선 가능 (https://www.psycopg.org/docs/extras.html#fast-execution-helpers)
- batch insert 관련 유연, 강점 (관련 키워드 insertmanyvalues 등)
- psycopg <- 해당 드라이버는 psycopg2 이전 버전 (사용하는 문법 등이 좀 상이함)
연결 방법
# 연결 string
# postgresql+psycopg2://user:password@host:port/dbname[?key=value&key=value...]
engine = create_engine(
"postgresql+psycopg2://scott:tiger@localhost/test",
isolation_level="SERIALIZABLE",
)
# ssl connection
# "postgresql+psycopg2://scott:tiger@192.168.0.199:5432/test?sslmode=require"
pg8000
공식 문서 : https://pypi.org/project/pg8000/
특징
- psycopg2 와 동일한 격리 수준 설정을 제공
- batch insert 관련 유연, 강점 (관련 키워드 insertmanyvalues 등)
- psycopg <- 해당 드라이버는 psycopg2 이전 버전 (사용하는 문법 등이 좀 상이함)
연결 방법
# 연결 string
# postgresql+pg8000://user:password@host:port/dbname[?key=value&key=value...]
engine = create_engine(
"postgresql+pg8000://user:pass@host/dbname", client_encoding='utf8'
)
# ssl connection
import ssl
ssl_context = ssl.create_default_context()
engine = sa.create_engine(
"postgresql+pg8000://scott:tiger@192.168.0.199/test",
connect_args={"ssl_context": ssl_context},
)
asyncpg
공식 문서 : https://magicstack.github.io/asyncpg/current/
특징
- asyncio 비동기 관련 프로젝트
연결 방법
# 연결 string
# postgresql+asyncpg://user:password@host:port/dbname[?key=value&key=value...]
from sqlalchemy.ext.asyncio import create_async_engine
engine = create_async_engine("postgresql+asyncpg://user:pass@hostname/dbname")
psycopg2cffi
공식 문서 : https://pypi.org/project/psycopg2cffi/
특징
- CFFI는 C 계층에 사용하는 것
- PyPy에서 사용하기에 적합
'DB > Sqlalchemy' 카테고리의 다른 글
[SQLAlchemy] (5-1) DB driver 종류 (mysql/maria) (0) | 2024.09.16 |
---|---|
[SQLAlchemy] (4) DML 예시 (by sqlalchemy 2.0) (2) | 2024.09.08 |
[SQLAlchemy] (3) 모델 선언 방법 (선언형, 명령형) (1) | 2024.09.08 |
[SQLAlchemy] (2) Core 방식 vs ORM 방식 (1) | 2024.08.25 |
[SQLAlchemy] (1) 기본 개념 및 동작 방식 (0) | 2024.08.24 |