import _ "github.com/lib/pq"?Blank import (_) загружает пакет и выполняет его init(), но не даёт доступа к именам пакета. Драйверы БД в Go регистрируют себя в database/sql именно в init(). Без такого импорта при вызове sql.Open("postgres", ...) драйвер не будет зарегистрирован и Open вернёт ошибку.
import (
"database/sql"
_ "github.com/lib/pq"
)
db, err := sql.Open("postgres", connStr) // драйвер "postgres" известен
Компилятор не считает blank import неиспользуемым - пакет нужен именно ради побочного эффекта init().