Gorm зависает на gorm.Open, без ошибок, но без ответа

Я пытаюсь использовать gorm в качестве ORM для приложения, но gorm.Open, похоже, никогда не возвращается, что приводит к зависанию моего приложения. Единственная разница между моим тестовым примером и всеми примерами, которые я видел в Интернете, заключается в том, что мой тестовый пример подключен к серверу AWS, тогда как все остальные подключаются к локальным экземплярам Postgres. Это имеет значение?

Код, который у меня есть:

func initDB() {
    var err error
    db, err := gorm.Open("postgres", "host=something.rds.amazonaws.com user=awsuser dbname=db sslmode=disable password=awspassword")
    if err != nil {
       panic(err)
    }
    log.Printf("Connected")
    defer db.Close()
}

Я пробовал переключаться sslmode, я пробовал использовать строку подключения postgres (полученную прямо из клиента postgres, поэтому она действительна), я пробовал переключиться на sql.Open. Я не знаю, что еще можно попробовать. FWIW Я вижу, что ни один из моих запросов не попадает в AWS.


person thisisnotabus    schedule 07.10.2016    source источник
comment
Не сталкиваетесь с проблемами брандмауэра? Я видел, что это вызывает зависание.   -  person tier1    schedule 07.10.2016
comment
Я постоянно подключаюсь к этой базе данных AWS с помощью PG Admin, а также SQL-Tabs, используя идентичную строку подключения.   -  person thisisnotabus    schedule 07.10.2016


Ответы (1)


Проблема заключалась не в блоке кода, который я разместил выше, а в функции main, которая вызывает initDB. Вызов initDB был после http.ListenAndServe, который блокируется навсегда.

person thisisnotabus    schedule 28.11.2016