сейчас хочу все же дописать домашний проект и пытаюсь научится правильно работать с БД в этом языке
изучаю библиотеку
https://github.com/yesodweb/persistent
возникло два вопроса
1) что бы установить зависимости для MySQL или PostgreSql надо иметь на машине установленные базы эти? в докере не получится их иметь
2) начал разумеется с sqlite но на самый просто запрос selectList [] [] получаю ошибку следующего вида
```
Couldn't match type ‘PersistEntityBackend record0’
with ‘Database.Persist.SqlBackend.Internal.SqlBackend’
arising from a use of ‘selectList’
The type variable ‘record0’ is ambiguous
• In a stmt of a 'do' block: basic <- selectList [] []
In the second argument of ‘($)’, namely
‘do buildDb
basic <- selectList [] []
liftIO $ print basic’
In the expression:
runSqlite "test.sqlite"
$ do buildDb
basic <- selectList [] []
liftIO $ print basic
```
весь исходный код тут
https://gist.github.com/Kukustar/111af6c623355b1711a8c1b127c05df4
по 2 интересно что если в selectList добавить условие для выборки то проблемы с мисматчигом параметров нету, и все выводится сразу
например если вот так
selectList [TutorialTitle ==. "Basic Haskell"] []
буду рад если кто то может помочь ответить на 1 ый вопрос, (не хочу тестировать установкой на рабочую машину баз без докера)
ну и не могу понять что не так с простым пустым запросом
Может это не совсем что вы ищете, но что не так с докером?
при установки зависимостей (persistent-mysql или persistent-postgresql) я получаю вот такие ошибки setup: The program 'pg_config' is required but it could not be found. ну и разумеется для mysql там своя ошибка, погуглив этот вопрос нашел вот это https://stackoverflow.com/questions/59424560/haskell-and-postgresql-build-error-the-program-pg-config-is-required-but-it-c судя по ссылаемому файлу я вижу что идет намек наличия базы данных на машины где идет сборка извиняюсь что некоректно расписал первый вопрос
а с докером все в порядке, я был бы рад если можно было бы обойтись бдшками в докере
да, инструментарий для Postgres так написан, что клиент для сборки требует сервер. да, это неправильно, но пока ни у кого руки не дошли сделать правильно
с помощью stack --docker можно компилировать и запускать в докере
спасибо, попробую этот вариант, у меня освноной затык сейчас что почему то не работает selectList [] [] с пустым аргументом для фильтрации а копать в строны постгреса и msql я начал что бы понять не в sqllite ли проблема в конечный виде mvp хотел все равно запускать на sqllite что бы самую дешевую виртуалку можно было арендовать
не работает или не компилируется?
не компилируется
а какая ошибка?
Обсуждают сегодня