@@ -185,9 +185,17 @@ func restoreOldDB(t *testing.T, version string) bool {
185185 db .Close ()
186186
187187 case setting .Database .UsePostgreSQL :
188- db , err := sql .Open ("postgres" , fmt .Sprintf ("postgres://%s:%s@%s/?sslmode=%s" ,
189- setting .Database .User , setting .Database .Passwd , setting .Database .Host , setting .Database .SSLMode ))
190- assert .NoError (t , err )
188+ var db * sql.DB
189+ var err error
190+ if setting .Database .Host [0 ] == '/' {
191+ db , err = sql .Open ("postgres" , fmt .Sprintf ("postgres://%s:%s@/?sslmode=%s&host=%s" ,
192+ setting .Database .User , setting .Database .Passwd , setting .Database .SSLMode , setting .Database .Host ))
193+ assert .NoError (t , err )
194+ } else {
195+ db , err = sql .Open ("postgres" , fmt .Sprintf ("postgres://%s:%s@%s/?sslmode=%s" ,
196+ setting .Database .User , setting .Database .Passwd , setting .Database .Host , setting .Database .SSLMode ))
197+ assert .NoError (t , err )
198+ }
191199 defer db .Close ()
192200
193201 _ , err = db .Exec (fmt .Sprintf ("DROP DATABASE IF EXISTS %s" , setting .Database .Name ))
@@ -199,8 +207,13 @@ func restoreOldDB(t *testing.T, version string) bool {
199207
200208 // Check if we need to setup a specific schema
201209 if len (setting .Database .Schema ) != 0 {
202- db , err = sql .Open ("postgres" , fmt .Sprintf ("postgres://%s:%s@%s/%s?sslmode=%s" ,
203- setting .Database .User , setting .Database .Passwd , setting .Database .Host , setting .Database .Name , setting .Database .SSLMode ))
210+ if setting .Database .Host [0 ] == '/' {
211+ db , err = sql .Open ("postgres" , fmt .Sprintf ("postgres://%s:%s@/%s?sslmode=%s&host=%s" ,
212+ setting .Database .User , setting .Database .Passwd , setting .Database .Name , setting .Database .SSLMode , setting .Database .Host ))
213+ } else {
214+ db , err = sql .Open ("postgres" , fmt .Sprintf ("postgres://%s:%s@%s/%s?sslmode=%s" ,
215+ setting .Database .User , setting .Database .Passwd , setting .Database .Host , setting .Database .Name , setting .Database .SSLMode ))
216+ }
204217 if ! assert .NoError (t , err ) {
205218 return false
206219 }
@@ -225,8 +238,13 @@ func restoreOldDB(t *testing.T, version string) bool {
225238 db .Close ()
226239 }
227240
228- db , err = sql .Open ("postgres" , fmt .Sprintf ("postgres://%s:%s@%s/%s?sslmode=%s" ,
229- setting .Database .User , setting .Database .Passwd , setting .Database .Host , setting .Database .Name , setting .Database .SSLMode ))
241+ if setting .Database .Host [0 ] == '/' {
242+ db , err = sql .Open ("postgres" , fmt .Sprintf ("postgres://%s:%s@/%s?sslmode=%s&host=%s" ,
243+ setting .Database .User , setting .Database .Passwd , setting .Database .Name , setting .Database .SSLMode , setting .Database .Host ))
244+ } else {
245+ db , err = sql .Open ("postgres" , fmt .Sprintf ("postgres://%s:%s@%s/%s?sslmode=%s" ,
246+ setting .Database .User , setting .Database .Passwd , setting .Database .Host , setting .Database .Name , setting .Database .SSLMode ))
247+ }
230248 assert .NoError (t , err )
231249 defer db .Close ()
232250
0 commit comments