- Параллельные тесты безопасны: у каждого своя независимая база, которая удаляется после успешного прохождения теста.
- Поддерживает популярные миграторы из коробки: migrate, goose, dbmate и другие (+ можно написать свой адаптер).
- Подключается в пару строк:
pgtestdb.New(t, conf, migrator) возвращает *sql.DB + есть pgtestdb.Custom для альтернативных клиентов.Как это работает:
- При первом вызове
pgtestdb.New ищется готовая template-БД; если её нет - создаётся пустая БД, гоняются миграции, база помечается как шаблон. Затем для каждого теста создаётся клон из шаблона. - Клонирование из шаблона очень быстрое - десятки миллисекунд.
- Выбор шаблона делается по хешу ваших миграций; синхронизация через Go-локи и Postgres advisory locks, поэтому миграции запускаются ровно один раз.
- Если тест прошёл - его БД удаляется; если упал - остаётся, а в логи выводится строка для подключения и анализа содержимого.
P.S. Кто-то даже сделал клон на Python, но из коробки нет поддержки alembic #golang #postgres #testing #ci
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥1
Моё знакомство с ней началось пару лет назад с Mac mini M2 8/256, который я взял на пробу. Он зашёл сразу: все плюсы unix-like системы, нормально работающие беспроводные интерфейсы, стабильный сон и чёткая картинка при дробном масштабировании.
Я пользовался им больше года и вообще не знал проблем, пока не понадобилась портативность. Тогда я продал миник и купил MacBook Air M3 15" 16/512, который до сих пор остаётся моим основным личным компьютером.
Параллельно на работе мне выдали Lenovo ThinkPad P16 Gen 1 (i7, 32/1024, RTX A1000). Я сразу поставил Ubuntu, всё настроил и начал работать. Поначалу было терпимо: даже получилось настроить хоткеи для мыши Logitech через solaar. Но со временем накопились проблемы:
• 4K-монитор при масштабе 100% - всё слишком мелкое, а 150% делало картинку мыльной
• Сон с внешним монитором работал нестабильно, периодически система зависала
• Ноутбук сильно грелся и шумел
• Через год solaar стал обрабатывать хоткеи через раз, переустановка не помогла
• Ввод пароля после блокировки экрана самопроизвольно переключался на русскую раскладку
Это лишь часть мелочей, которые в сумме делают работу как минимум неудобной и не очень продуктивной. Когда рабочий ноутбук - основной профессиональный инструмент, ежедневно воевать с системой становится невозможно. Да, что-то, наверняка, лечится, но я хочу работать, а не чинить ОС.
Был вариант перейти на Windows + WSL, но это всё равно полумеры. Работу с личного ноутбука я тоже не рассматривал - важно физически отделять работу от личных проектов, да и с точки зрения безопасности это не очень.
В итоге я решил начать год с апгрейда и купил Mac mini M4 16/256 исключительно для работы, сразу проапгрейдив SSD до 1 TB. В сумме вышло около 800$, тогда как такая конфигурация из коробки стоит примерно 1000$. За ежедневный комфорт - более чем адекватно. 16 GB unified-памяти мне хватает, по опыту того же MacBook Air.
Почему не MacBook? Не вижу смысла переплачивать. Я работаю в основном из дома с одним внешним монитором, клавиатурой и мышью. В офисе тоже есть возможность подключить мониторы. В рюкзаке Mac mini занимает даже меньше места, чем ноутбук. Да, с ним не посидишь на кухне - но для этого у меня остаётся ThinkPad
А с какой ОС работаете вы?
#macos #linux #ubuntu
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4