mirror of
https://github.com/thomiceli/opengist.git
synced 2025-06-19 08:27:13 +02:00
feat: read psql sslmode from db uri (#462)
This commit is contained in:

committed by
GitHub

parent
de144d09d3
commit
3c940cd81f
@ -39,6 +39,7 @@ type databaseInfo struct {
|
||||
User string
|
||||
Password string
|
||||
Database string
|
||||
SSLMode string
|
||||
}
|
||||
|
||||
var DatabaseInfo *databaseInfo
|
||||
@ -46,6 +47,8 @@ var DatabaseInfo *databaseInfo
|
||||
func parseDBURI(uri string) (*databaseInfo, error) {
|
||||
info := &databaseInfo{}
|
||||
|
||||
info.SSLMode = "disable"
|
||||
|
||||
if uri == ":memory:" {
|
||||
info.Type = SQLite
|
||||
info.Database = uri
|
||||
@ -85,6 +88,13 @@ func parseDBURI(uri string) (*databaseInfo, error) {
|
||||
info.Password, _ = u.User.Password()
|
||||
}
|
||||
|
||||
if u.RawQuery != "" {
|
||||
q, _ := url.ParseQuery(u.RawQuery)
|
||||
if sslmode := q.Get("sslmode"); sslmode != "" && info.Type == PostgreSQL {
|
||||
info.SSLMode = sslmode
|
||||
}
|
||||
}
|
||||
|
||||
switch info.Type {
|
||||
case PostgreSQL, MySQL:
|
||||
info.Database = strings.TrimPrefix(u.Path, "/")
|
||||
@ -222,7 +232,7 @@ func setupSQLite(dbInfo databaseInfo) error {
|
||||
|
||||
func setupPostgres(dbInfo databaseInfo) error {
|
||||
var err error
|
||||
dsn := fmt.Sprintf("host=%s port=%s user=%s password=%s dbname=%s sslmode=disable", dbInfo.Host, dbInfo.Port, dbInfo.User, dbInfo.Password, dbInfo.Database)
|
||||
dsn := fmt.Sprintf("host=%s port=%s user=%s password=%s dbname=%s sslmode=%s", dbInfo.Host, dbInfo.Port, dbInfo.User, dbInfo.Password, dbInfo.Database, dbInfo.SSLMode)
|
||||
|
||||
db, err = gorm.Open(postgres.Open(dsn), &gorm.Config{
|
||||
Logger: logger.Default.LogMode(logger.Silent),
|
||||
|
Reference in New Issue
Block a user