Mgo кеширует строки подключения?

Приложение My Go подключалось к MongoDB (размещенной на Compose.io) с использованием MGO без проблем.

Сегодня я решил удалить эту базу данных и добавить другую (снова используя Compose). Я обновил строку подключения.

Поэтому я подключаюсь с помощью:

db, err := mgo.Dial("mongodb://<username>:<password>@dogen.mongohq.com:10048/db-name")

с именем пользователя и паролем на месте.

Странно, но приложение по-прежнему подключается к старой базе данных. Я знаю это, потому что я напечатал err сообщение, которое сообщило мне: не авторизован для запроса на my-old-db-name после того, как я попытался выполнить запрос.

Я бегал go install собрать снова, но все равно не повезло.

1 ответ

Решение

Нет, mgo не кэширует строки подключения, которые вы передаете функции mgo.Dial. Мне даже не ясно, что это будет значить? Использование неверного имени базы данных после того, как вы явно попросили его подключиться к другой базе данных, было бы серьезной ошибкой, а не кэшированием.

Что касается вашей проблемы, вы уверены, что не ссылаетесь на старое имя базы данных в вашем собственном коде? Функция Dial - не единственный способ указать имена баз данных (подсказка: session.DB)

Другие вопросы по тегам