Я использовал GORM .
Я пытался следовать примеру на документах.
У меня есть таблица в MySQL БД под названием "Attachments"
Вот как я пытался получить все записи:
type Attachements struct {
reference int
status int
statusDate Timestamp
path string
}
func main() {
db, err := gorm.Open(
"mysql",
"root:passord@(localhost)/dwg_transformer?charset=utf8&parseTime=True&loc=Local"
)
if err!=nil {
panic("Cannot connect to DB")
}
db.DB()
db.DB().Ping()
defer db.Close()
atts := []Attachements{}
db.Find(&atts)
fmt.Println(atts)
}
Я также пытался:
rows, err := db.Model(&Attachements{}).Rows()
defer rows.Close()
if err != nil {
panic(err)
}
att := Attachements{}
for rows.Next() {
db.ScanRows(rows, &att)
fmt.Println(att)
}
Я также попытался выполнить запрос по столбцу следующим образом:
db.Where(&Attachements{status: 0}).Find(&atts)
for _, v := range atts {
fmt.Println("reference : ", v.reference)
fmt.Println("path : ", v.path)
}
Но во всем этом случае я получил пустой вывод (без печати, без пани c, без ошибок!)
Я пытался получить список всех таблиц следующим образом:
tables := []string{}
db.Select(&tables, "SHOW TABLES")
fmt.Println(tables)
выводит меня: []
Но когда я проверяю, есть ли таблица "Вложения" существует, возвращает меня true
:
check:= db.HasTable("Attachements")
fmt.Println(check)
Я не могу понять, что я пропустил (если так) ... Есть идеи?
Большое спасибо заранее любому GO dev wo может столкнуться с проблемой здесь ...
Вот скриншот MySQL WorkBench: мы видим таблицу Attachments и строки
ОБНОВЛЕНИЕ (03/03/20 19:00):
Я попытался экспортировать все поля, как указано в комментариях, например:
type Attachements struct {
Reference int
Status int
StatusDate Timestamp
Path string
}
Результаты одинаковы: нет ошибок для всех тестов, d пустые выходы.
ОБНОВЛЕНИЕ (03/03/20 20:00):
Я добавил db.GetErrors()
, потому что, как предлагается в комментариях, GORM не сообщает об ошибках автоматически:
[2020-03-03 19:58:05] Error 1146: Table 'dwg_transformer.attachements' doesn't exist
Почему мои таблицы получили строчные буквы?