Получить статистику базы данных через GORM - PullRequest
0 голосов
/ 27 мая 2020

Я перехожу с database/sql на jinzhu/gorm в своем проекте. Раньше я фиксировал ситуацию с моей базой данных с помощью метода Stats. Мне интересно, как я могу этого добиться в GORM? Ничего не нашел в официальном do c.

Ответы [ 2 ]

1 голос
/ 27 мая 2020

От Gorm Do c

Получить общий c интерфейс базы данных *sql .DB из * gorm.DB соединение

// Получить общий c объект базы данных *sql.DB для использования его функций

db.DB ()

Используя db.DB(), вы можете получить *sql.DB и используйте функцию .Stats(), где db - *gorm.DB соединение

sqlDBStats := db.DB().Stats()
1 голос
/ 27 мая 2020

gorm (обычно) является оболочкой вокруг sql.DB.

Вы можете получить доступ к базовому объекту *sql.DB, вызвав DB.DB () . Затем у вас есть доступ к любому методу в стандартной библиотеке, включая DB.Stats().

Обратите внимание на комментарий в документации:

DB get *sql.DB из текущего соединения Если базовый соединение с базой данных не является *sql .DB, возвращает ноль

Например:

// db is a *gorm.DB
db, err := gorm.Open("mysql", connectionString)
...
// sqlDB is a *sql.DB
sqlDB := db.DB()
if sqlDB != nil {
  // Call to the standard library's sql.DB.Stats
  stats := sqlDB.Stats()
}
...