Як я можу отримати esqueleto для генерації рядка SQL з from
оператора?
У документації toRawSql
сказано, що "ви можете просто увімкнути реєстрацію запитів постійних". Я спробував усі можливі форми, MonadLogger
які я міг зрозуміти, але він ніколи не друкував жодного SQL. У цій же документації також сказано, що "використання цієї функції вручну ... можливо, але нудно". Однак не QueryType
експортуються конструктори типу, а також будь-які функції, що повертають значення типу . Мені вдалося обійти це, помітивши, що QueryType
це newtype
і використання unsafeCoerce
!
Я також був змушений надати Connection
(який я отримав через SQLite), хоча для створення SQL не повинно бути необхідності підключатися до бази даних.
Це те, що я отримав. Має бути кращий спосіб.
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
екземпляри для генерації специфічних для бази даних баз даних .