и получаю ошибку вида cannot scan null into *string, все решения которые встретил так это sql.NullString и проверка на IsValid. А есть нормальные решения данной ситуации?
интерфейсы и драйвер: pgx
NullString - нормальное решение.
привязка модели данных к типу БД - это разве хорошо?
а зачем привязывать модели данных к типу бд? сканируй бд в одну структуру, потом мапь ее в другую
то есть, решение на Go настолько классное, что заставляет создавать еще один пласт моделей для pgx?
можно попробовать дизайнить структуру БД без null
да я уже подумал об этом. типа default пустые строки, 0 и так далее
А чего не go-pg?
https://habr.com/ru/company/oleg-bunin/blog/461935/ решил попробовать
Почему "еще один" ? У вас есть модели для бд - это один пласт
мои модели они не для БД, а для данных. с методами и так далее. а тут получается что их использовать для слоя repository уже не получится, так как надо использовать типы данных sql.Null*
Типа потом писать адаптер что-бы перекидывать из одной модели в другую, собсно в обратную сторону тоже)) Вот такое вот кунфу архитектурное...
Ну да, модели в дб - это отдельная модель, это не сущность из бизнес-логики
ну это не архитектура вообще, это гемморой которого хотелось избежать из-за лени, причем в чистой архитектуре его не избежать, о чем кстати я убедился на практике и показал в своих видео.
а с монгой и в других языках удавалось объединить
не используй чистую архитектуру в го, вообще забудь про роберта мартина
не забуду мать родную (с)
С монгой у вас скорее всего просто неправильно сделано, без разделения. Модель из базы не всегда маппится на модель из бизнес логики один в один.
не всегда, но если удается, то почему бы и нет?
можно посмотреть: https://github.com/theartofdevel/notes_system/tree/main/note_service/app
Звучит как "не всегда получается палец засунуть в розетку, но если удается, то почему бы и нет"
ну а зачем плодить дополнительный слой моделей? если можно не плодить
А зачем тогда вообще плодить лишние слои и пакеты? Если можно все в одном пакете main сделать
во
жирный плюс, автору поста
Обсуждают сегодня