forked from Sansui233/proxypool
-
Notifications
You must be signed in to change notification settings - Fork 6
/
db.go
36 lines (30 loc) · 807 Bytes
/
db.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package database
import (
"os"
"github.com/One-Piecs/proxypool/log"
"github.com/One-Piecs/proxypool/config"
"gorm.io/driver/postgres"
"gorm.io/gorm"
"gorm.io/gorm/logger"
)
var DB *gorm.DB
func connect() (err error) {
// localhost url
dsn := "user=proxypool password=proxypool dbname=proxypool port=5432 sslmode=disable TimeZone=Asia/Shanghai"
if url := config.Config().DatabaseUrl; url != "" {
dsn = url
}
if url := os.Getenv("DATABASE_URL"); url != "" {
dsn = url
}
DB, err = gorm.Open(postgres.Open(dsn), &gorm.Config{
Logger: logger.Default.LogMode(logger.Silent),
})
if err == nil {
log.Infoln("database: successfully connected to: %s", DB.Name())
} else {
DB = nil
log.Warnln("database connection info: %s \n\t\tUse cache to store proxies", err.Error())
}
return
}