Я только начал изучать haskelldb
как более мощный компаньон для persistent
, так как мне нужен более мощный инструмент для запроса к базе данных. Почти сразу я столкнулся с трудностями с типами данных; в частности, я довольно часто использую Data.Text
, UTCTime
и некоторые пользовательские типы данных. К сожалению, хотя HDBC, похоже, достаточно хорошо поддерживает эти типы данных, haskelldb скрывает все это, и вам нужно написать свои собственные преобразования, начиная с String
.Datatypes with haskelldb на практике (текст, UTCTime)
Я не хочу дублировать работу, уже сделанную для HDBC; что вы предлагаете делать в этом случае?
Я думаю, что, вероятно, я добавлю атрибут getHdbcValue
в класс GetInstances
, чтобы я мог писать простые экземпляры GetValue
, которые будут использовать инфраструктуру HDBC; есть ли лучшие идеи? Мне что-то не хватает?
(кстати: мне кажется, что эта библиотека - может быть, от исторических причин - чуть более обобщенные, не мог он просто поддержать hdbc ..?)
настойчив действительно что ограничены? Я думаю, что люди Yesod используют его для всего, поэтому я был бы удивлен, если многое может сделать HaskellDB, чего не может. Конечно, HaskellDB может сделать некоторые вещи более простым способом, чем постоянным. – ehird
Да. Предполагается, что Persistent будет действительно агрегированным по базе данных, а haskelldb сосредоточен вокруг SQL. Persistent не поддерживает функции DB, пользовательские операторы, даже немного более сложные объединения. Я бы не стал винить постоянный, большинство инфраструктур ORM не поддерживают такие функции, но в большинстве моих приложений, обращающихся к БД, они мне нужны. – ondra
Вы оценили esqueleto? –