psql --version 실행이 안 되면 환경 변수 Path PostgreSQL 위치 추가 (C:/Program Files/PostgreSQL/14/bin)
psql -U [DB사용자 이름]
정상적으로 입력이 되면 프롬프트 앞부분이 경로가 아니라 사용자이름=# 으로 바뀜

CREATE TABLE todo(
id SERIAL,
contents VARCHAR(256) NOT NULL,
is_done BOOLEAN NOT NULL,
PRIMARY KEY (id)
);
SELECT * FROM todo;

INSERT INTO todo VALUES(contents, is_done) VALUES('test', true);
SELECT * FROM todo;
왠지 모르겠는데 VARCHAR은 작은 따옴표로 감싸야 한다. 큰따옴표 쓰면 안됨. ID는 원래 1이다

DELETE FROM todo WHERE contents='test';

이런식으루 SQL문을 PostgreSQL 문법에 맞게 잘 쓰면 된당
pip install psycopg2 # python, postgres 연동
pip install sqlalchemy # ORM
pip install cryptography # DB에 접속할 때 인증, 암호 관련 처리
라이브러리를 설치한 후
from sqlalchemy import Boolean, Column, Integer, String
from sqlalchemy.orm import declarative_base
Base = declarative_base()
class ToDo(Base):
__tablename__ = "todo"
id = Column(Integer, primary_key=True, index=True)
contents = Column(String(256), nullable=False)
is_done = Column(Boolean, nullable=False)
DB에서 만든 테이블와 연동될 클래스를 만든다
from sqlalchemy import create_engine, select
from sqlalchemy.orm import sessionmaker
from connection import SessionFactory
DATABASE_URL = 'postgres://사용자이름:사용자비밀번호@localhost/DB이름'
engine = create_engine(DATABASE_URL, echo=True) # SQL문 로그 프린트
SessionFactory = sessionmaker(autocommit=False, autoflush=False, bind=engine)
session = SessionFactory()
result = session.scalars(select(ToDo))
print(list(result))

오류가 나면 session.scalar(select(1)) 를 통해 세션 연결이 잘 되었는지 (DB가 꺼져 있지는 않은지 등) 확인해본다.