Size: a a a

2020 April 30

М

МишанЯ in Go-go!
Кстати, днём писал насчёт ошибки sqlite3, выдавала base is locked. У меня код веб сервера, использую go-sqlite3. Проблема была в том, что база была открыта в sqlitebrowser и ожидала сохранения изменений, на что хардлеры у меня сыпались ошибками. Как работает go-sqlite3? Он на себя принимает поочередные операции с db? Просто закрыв sqlitebrowser ошибок больше не было. Хандлеры без использования всяких мьютексов справляются. Обычный быдлокод. Что же такого в этом драйвере?🤔
источник

ВС

Владимир Столяров... in Go-go!
Ну долго открытые транзакции вызывают подобную попоболь вообще на любой базе
источник

K

Kirill in Go-go!
всем привет, скажите, а как часто вы используетее reflect и для каких целей?
источник

М

МишанЯ in Go-go!
Владимир Столяров
Ну долго открытые транзакции вызывают подобную попоболь вообще на любой базе
Ты про что? Если prepare, begin...то я их не строил. Тупо exec, query..
источник

ВС

Владимир Столяров... in Go-go!
Многие просмотрщики баз автоматом открывают транзакции
источник

М

МишанЯ in Go-go!
Если в работе уже будет подобное, наверное каждое действие записи и изменения между lock unlock заключу. Но на деле пока не появлялось. Как я понял хандлеры автоматом ждут когда освободится пулл db. Заметил что ещё раз вроде пытаются, если заперто, то отваливаются.
источник

Вy

Вячеслав yaches... in Go-go!
Господа, поделитесь опытом. Как тестировать методы для работы с базой данных? Скажем, есть условный UserRepository с методами Create, Get, Update, Delete. И надо оттестировать, что все что ожидается записалось в базу, удалилось, вернулось из метода и т.д.
источник

DP

Daniel Podolsky in Go-go!
Вячеслав yaches
Господа, поделитесь опытом. Как тестировать методы для работы с базой данных? Скажем, есть условный UserRepository с методами Create, Get, Update, Delete. И надо оттестировать, что все что ожидается записалось в базу, удалилось, вернулось из метода и т.д.
вы что, собственно, тестировать хотите?
источник

Вy

Вячеслав yaches... in Go-go!
Правильность написания sql запросов, правильность передачи параметров. Хочу убедиться, что например вставка в базу данных произошла так, как ожидается
источник

ЛА

Локоть Анатолий... in Go-go!
Вячеслав yaches
Господа, поделитесь опытом. Как тестировать методы для работы с базой данных? Скажем, есть условный UserRepository с методами Create, Get, Update, Delete. И надо оттестировать, что все что ожидается записалось в базу, удалилось, вернулось из метода и т.д.
Я бы рекомендовал создать тесты, работающие с бд. В них описать начальные миграции.
Ну и перед тестом поднимать докер с базой и прогонять.
Есть вариант вместо базы использовать sql mock, им можно проверить что такие-то запросы вызваны, но не проверить реакцию бд..
https://github.com/DATA-DOG/go-sqlmock
источник

DP

Daniel Podolsky in Go-go!
Вячеслав yaches
Правильность написания sql запросов, правильность передачи параметров. Хочу убедиться, что например вставка в базу данных произошла так, как ожидается
это интеграционные тесты, как интеграционные их и надо писать. может быть - сразу со всей трубухой API
источник

Вy

Вячеслав yaches... in Go-go!
Спасибо
источник

Вy

Вячеслав yaches... in Go-go!
Локоть Анатолий
Я бы рекомендовал создать тесты, работающие с бд. В них описать начальные миграции.
Ну и перед тестом поднимать докер с базой и прогонять.
Есть вариант вместо базы использовать sql mock, им можно проверить что такие-то запросы вызваны, но не проверить реакцию бд..
https://github.com/DATA-DOG/go-sqlmock
Посмотрел примеры sql mock. Не совсем понимаю, в чем его польза.
источник

ЛА

Локоть Анатолий... in Go-go!
Вячеслав yaches
Посмотрел примеры sql mock. Не совсем понимаю, в чем его польза.
В том, что он не делает запросы в бд и для тестов с ним бд не нужна
источник

Вy

Вячеслав yaches... in Go-go!
Это я понимаю. Но он не эмулирует базу, а только проверяет факт выполнения запросов с правильном порядке, верно? Можете привести пример, для чего его было бы целесообразно использовать?
источник

AK

Artem Krapivin in Go-go!
Вячеслав yaches
Это я понимаю. Но он не эмулирует базу, а только проверяет факт выполнения запросов с правильном порядке, верно? Можете привести пример, для чего его было бы целесообразно использовать?
для unit-тестов
источник

Y

Yury in Go-go!
ребят, а на сколькоточный таймер в го? какова возможная погрешность в год?))
источник

DP

Daniel Podolsky in Go-go!
а?!
источник

AP

Andrey Privalov in Go-go!
Вячеслав yaches
Это я понимаю. Но он не эмулирует базу, а только проверяет факт выполнения запросов с правильном порядке, верно? Можете привести пример, для чего его было бы целесообразно использовать?
А зачем вам эмулировать базу? Мы ж не ее тестируем. А проверить sql входящий - самое оно
источник

AS

Andrey S in Go-go!
Yury
ребят, а на сколькоточный таймер в го? какова возможная погрешность в год?))
а какова вероятность того что машина за год не перегрузится?
а какова нагрузка по задачам на машину?
а каково железо машины?
это какбэ зависимые вещи и от go тут скорее всего меньше всего зависит...
а таймеры скорее всего реализованы через timerfd на линукс по крайней мере...
источник