There is also the option of creating another package to hold your database connection-related settings. It can then have a package level global, which can be initialized in main
and used in any package that is importing it.
This way, you can explicitly see that the database package is being imported. Here is some sample code.
package database
var (
// DBCon is the connection handle
// for the database
DBCon *sql.DB
)
package main
import "myApp/database"
func main() {
var err error
database.DBCon, err = sql.Open("postgres", "user=myname dbname=dbname sslmode=disable")
}
package user
import "myApp/database"
func Index() {
// database handle is available here
database.DBCon
...
}