mirror of
https://github.com/thomiceli/opengist.git
synced 2025-06-20 00:47:14 +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
|
User string
|
||||||
Password string
|
Password string
|
||||||
Database string
|
Database string
|
||||||
|
SSLMode string
|
||||||
}
|
}
|
||||||
|
|
||||||
var DatabaseInfo *databaseInfo
|
var DatabaseInfo *databaseInfo
|
||||||
@ -46,6 +47,8 @@ var DatabaseInfo *databaseInfo
|
|||||||
func parseDBURI(uri string) (*databaseInfo, error) {
|
func parseDBURI(uri string) (*databaseInfo, error) {
|
||||||
info := &databaseInfo{}
|
info := &databaseInfo{}
|
||||||
|
|
||||||
|
info.SSLMode = "disable"
|
||||||
|
|
||||||
if uri == ":memory:" {
|
if uri == ":memory:" {
|
||||||
info.Type = SQLite
|
info.Type = SQLite
|
||||||
info.Database = uri
|
info.Database = uri
|
||||||
@ -85,6 +88,13 @@ func parseDBURI(uri string) (*databaseInfo, error) {
|
|||||||
info.Password, _ = u.User.Password()
|
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 {
|
switch info.Type {
|
||||||
case PostgreSQL, MySQL:
|
case PostgreSQL, MySQL:
|
||||||
info.Database = strings.TrimPrefix(u.Path, "/")
|
info.Database = strings.TrimPrefix(u.Path, "/")
|
||||||
@ -222,7 +232,7 @@ func setupSQLite(dbInfo databaseInfo) error {
|
|||||||
|
|
||||||
func setupPostgres(dbInfo databaseInfo) error {
|
func setupPostgres(dbInfo databaseInfo) error {
|
||||||
var err 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{
|
db, err = gorm.Open(postgres.Open(dsn), &gorm.Config{
|
||||||
Logger: logger.Default.LogMode(logger.Silent),
|
Logger: logger.Default.LogMode(logger.Silent),
|
||||||
|
Reference in New Issue
Block a user