Я сейчас пытаюсь выучить go & Gorm, поэтому извиняюсь, если упускаю что-то очевидное.
Я объявил следующие модели GORM
type User struct {
gorm.Model
DiscordID string `gorm:"unique"`
SteamID string `gorm:"unique"`
SteamID64 uint64 `gorm:"unique"`
DiscordNickname string
DiscordProfilePicURL string
}
type DeepLink struct {
gorm.Model
ShortURL string `gorm:"unique"`
UserID uint
User User
LinkAction Action
Payload interface{} `gorm:"-"`
}
Я хочу чтобы иметь возможность идентифицировать пользователя, который создал диплинк - это может быть не лучшим способом сделать это.
При создании новой базы данных при создании второго пользователя с помощью
func (m *Models) CreateUserFromDiscord(discordID, discordNickname, discordProfilePicURL string) *User {
u := &User{
DiscordID: discordID,
DiscordNickname: discordNickname,
DiscordProfilePicURL: discordProfilePicURL,
}
m.db.Create(u)
return u
}
Я получаю сообщение об ошибке: pq: duplicate key value violates unique constraint "users_steam_id_key"
Создание первого пользователя с использованием этого метода и создание глубоких ссылок для этого пользователя работает нормально, но создание второго пользователя приводит к ошибке. Ни у одного пользователя не установлен SteamID.
Мне интересно, есть ли способ исправить эту или улучшить структуру моих моделей для решения этой проблемы.
База данных создается с помощью функции Gorms AutoMigrate. Это происходит на новом БД
Спасибо