"Сообщение": "отношение \" пользователи \ "не существует", Голанг
У меня есть API, написанный на Go, у меня есть следующий набор моделей...
type User struct {
gorm.Model
ID string `sql:"type:varchar(36);primary key"`
Name string
Password string
Email string
Content []Content
Location string
Tracks []Track
Avatar string
BgImg string
Artists []Artist
}
type Artist struct {
gorm.Model
ID string `sql:"type:varchar(36);primary key"`
}
type Content struct {
gorm.Model
ID string `sql:"type:varchar(36);primary key"`
}
type Track struct {
gorm.Model
ID string `sql:"type:varchar(36);primary key"`
}
в моем main.go
файл, я инициализирую свою базу данных с...
drivers.DB().CreateTable(&models.User{})
drivers.DB().CreateTable(&models.Artist{})
drivers.DB().CreateTable(&models.Content{})
drivers.DB().CreateTable(&models.Track{})
Но я получаю ошибку...
{
"_message": {
"Severity": "ERROR",
"Code": "42P01",
"Message": "relation \"users\" does not exist",
"Detail": "",
"Hint": "",
"Position": "15",
"InternalPosition": "",
"InternalQuery": "",
"Where": "",
"Schema": "",
"Table": "",
"Column": "",
"DataTypeName": "",
"Constraint": "",
"File": "parse_relation.c",
"Line": "1159",
"Routine": "parserOpenTable"
}
}
1 ответ
Решение
Я подозреваю, что это потому, что ваш Artist
, Content
, а также Track
не имеет родительской ссылки на User
, Хотя User
имеет много ссылок на них. Кроме того, встроенный тип gorm.Model
уже имеет поле идентификатора.
Пытаться:
type Artist struct {
gorm.Model
ID string `sql:"type:varchar(36);primary key"`
UserID string `sql:"type:varchar(36)"`
}
type Content struct {
gorm.Model
ID string `sql:"type:varchar(36);primary key"`
UserID string `sql:"type:varchar(36)"`
}
type Track struct {
gorm.Model
ID string `sql:"type:varchar(36);primary key"`
UserID string `sql:"type:varchar(36)"`
}