@@ -185,9 +185,17 @@ func restoreOldDB(t *testing.T, version string) bool {
185
185
db .Close ()
186
186
187
187
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
+ }
191
199
defer db .Close ()
192
200
193
201
_ , 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 {
199
207
200
208
// Check if we need to setup a specific schema
201
209
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
+ }
204
217
if ! assert .NoError (t , err ) {
205
218
return false
206
219
}
@@ -225,8 +238,13 @@ func restoreOldDB(t *testing.T, version string) bool {
225
238
db .Close ()
226
239
}
227
240
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
+ }
230
248
assert .NoError (t , err )
231
249
defer db .Close ()
232
250
0 commit comments