from
명령문 에서 SQL 문자열을 생성하기 위해 esqueleto를 얻으려면 어떻게 해야합니까?
의 문서는 toRawSql
"영구적 인 쿼리 로깅을 켜도됩니다"라고 말합니다. 내가 MonadLogger
이해할 수있는 모든 가능한 형태를 시도했지만 SQL을 인쇄하지 않았습니다. 동일한 문서에 "이 기능을 수동으로 사용하는 것은 가능하지만 지루합니다"라고도 나와 있습니다. 그러나 유형의 생성 자나 유형의 값을 반환하는 함수 QueryType
는 내보내지지 않습니다. 나는 그것이 QueryType
a 임을 알아 차리고 newtype
사용 함으로써 이것을 피할 수 있었다 unsafeCoerce
!
Connection
SQL을 생성하기 위해 데이터베이스에 연결할 필요가 없더라도 (SQLite를 통해 얻은) 를 제공 해야했습니다.
이것이 내가 가진 것입니다. 더 나은 방법이 있어야합니다.
withSqliteConn ":memory:" $
\conn -> return $ toRawSql SELECT
(unsafeCoerce ((const mempty)
:: a -> Text.Lazy.Builder.Builder))
(conn, initialIdentState) myFromStatement)
http://hackage.haskell.org/package/esqueleto-1.3.4.2/docs/Database-Esqueleto-Internal-Sql.html
SqlPersist
인스턴스를 사용하여 데이터베이스 별 SQL 문자열을 생성 하기 때문이라고 생각합니다 .