주요 변경 사항
모든 드라이버가 동일한 동작을 하도록 Postgres 타임스탬프 매핑을 변경했습니다.
❗ postgres.js
드라이버 인스턴스를 수정하여 날짜를 항상 문자열로 반환하도록 변경했습니다. 이제 Drizzle는 선택한 mode
에 따라 매핑된 날짜를 문자열로 제공합니다. 단, postgres.js
드라이버 인스턴스를 Drizzle에 전달하면 해당 객체의 날짜 관련 동작이 변경되어 항상 문자열로 반환됩니다.
이 변경 사항은 주의 사항으로 마이너 릴리스로 배포했습니다:
-
타임스탬프를 사용하면서 특정 응답을 기대했다면, 이제 동작이 변경됩니다. 드라이버에 매핑할 때 타임존이 있거나 없는 타임스탬프 모두
.toISOString
을 사용합니다. -
Drizzle 외부에서
postgres.js
드라이버를 사용 중이라면, Drizzle에 전달된 모든postgres.js
클라이언트는 날짜 관련 동작이 변경됩니다. 응답에서 모든 날짜는 문자열로 반환됩니다.
postgres.js
에서 변경된 파서는 다음과 같습니다.
이상적으로는 거의 모든 다른 드라이버와 마찬가지로, 쿼리별로 매핑을 변경할 수 있는 기능이 있어야 합니다. 이는 드라이버 클라이언트가 변경되지 않음을 의미합니다. postgres.js
라이브러리 제작자에게 쿼리별 매핑 인터셉터를 지정할 수 있는 가능성에 대해 문의할 예정이며, 이를 통해 모든 사용자에게 더 나은 경험을 제공할 계획입니다.
만약 이 기능이 이미 postgres.js
에 존재하는데 우리가 간과했다면, Discord에서 알려주세요!
타임존이 있거나 없는 타임스탬프에 대한 추가 참고 자료는 문서에서 확인할 수 있습니다.
postgres.js
드라이버와 Drizzle를 시작하는 방법은 여기에서 확인하세요.
수정 사항
- 모드 문자열이 포함된 타임스탬프가 문자열 대신 Date 객체로 반환되는 문제 수정 (#806)
- 날짜 데이터가 항상 Date 객체로 처리되도록 수정 (#971)
- 타임스탬프와 자바스크립트의 datetime 객체 간 불일치 문제 해결 (#1176)
- 타임스탬프 컬럼이 문자열 타입으로 표시되지만 실제로는 Date 객체를 반환하는 문제 수정 (#1185)
- PostgreSQL 날짜 컬럼의 잘못된 데이터 타입 문제 해결 (#1407)
- UTC로 설정된 TimeZone을 사용할 때 잘못된 타임스탬프 변환 문제 수정 (#1587)
- PostgreSQL에서 타임스탬프와 타임존을 함께 사용할 때 밀리초가 제거되는 문제 해결 (#1061)
- AWS Data API를 사용하여 타임스탬프 필드를 업데이트할 때 발생하는 문제 수정 (#1164)
- 관계형 쿼리에서 잘못된 날짜가 반환되는 문제 해결 (#895)