일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 프로그래머스
- 우아한 테크코스 2차 합격
- github
- python
- python all testcode
- classproperty
- DB
- depends_on
- github skyline
- 갓재석
- METACLASS
- classmethod
- docker-compose
- docker
- springboot 3.0.0
- Django
- OperationalError
- 코딩테스트
- MySQL server on 'db' (115)
- EC2
- TypeError: 'property' object is not iterable
- S3
- AWS
- 재귀함수가 뭔가요
- Spring
- 우아한테크코스 2차
- AWS S3
- javascript
- depends
- 2차 코딩테스트
Archives
hanbin.dev
[Python] NotImplementedError: Don't know how to literal-quote value ~ 본문
Python
[Python] NotImplementedError: Don't know how to literal-quote value ~
hanbindev 2022. 7. 27. 01:34Don't know how to literal-quote value ~ : sqlalchemy에게 이 문자를 어떻게 컴파일 해야 하는지 알려줘
결론부터 말하자면 Sqlalchemy 1.3.6 이상에서는 일어나지 않는 문제이다.
문제 원인
# ============== example ==============
query = db.session.query(m.Account).filter(m.Account.created_datetime == datetime.now())
query.statement.compile(
dialect=postgresql.dialect(),
compile_kwargs={'literal_binds': True},
)
statement를 컴파일 할 때 생기는 문제인데,
Sqlalchemy 1.3.6 버전 이하의 postgresql에서 DateTime을 처리하는 literal processor가 구현되어 있지 않아 생긴 문제로 보인다.
문제 해결
sqlalchemy 창시자 mike bayer 가 손수 해결해줬다.
모든 데이터베이스 엔진에 대해 Datetime객체를 ISO 8601 포멧으로 치환해주도록 변경한 듯 하다. > 🔗 commit log
'Python' 카테고리의 다른 글
[Python] metaclass 란 (0) | 2022.06.06 |
---|---|
TypeError: 'property' object is not iterable (0) | 2021.06.02 |
[Python] unittest 모든 테스트 코드 실행하기 (0) | 2021.05.29 |
[Python] namespace란 (0) | 2021.05.12 |
[Python] 메타클래스(metaclass) 란? (0) | 2021.05.11 |