@yativ_sobb

Почему приложения на go падает при ошибке postgres?

Я использую библиотеку pgx for postgres. Когда есть ошибка то приложения падает.

К примеру ошибка
ERROR: duplicate key value violates unique constraint "users_pkey"


func (creater *creatorUser) addUser(tx *sql.Tx) (err error) {
	query := fmt.Sprintf(
		`INSERT INTO %s ("uuid", phone_number, email, password_hash) VALUES($1, $2, $3, $4)`,
		UserTable,
	)
	inserted, err := creater.database.Prepare(query)
	defer inserted.Close()
	if err != nil {
		log.Fatalf("users: unable to rollback: %v\n", err)
		return
	}

	_, err = tx.
		StmtContext(creater.ctx, inserted).
		Exec(
			creater.data.UUID,
			creater.data.PhoneNumber,
			creater.data.Email,
			creater.data.PasswordHash)
	if err != nil {
		tx.Rollback()
		log.Fatalf("users: add user failed: %v", err)
	}

	return
}
  • Вопрос задан
  • 141 просмотр
Решения вопроса 1
EvgenyMamonov
@EvgenyMamonov Куратор тега Go
Senior software developer, system architect
Из за log.Fatalf
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы