I created the golang web api with postgresql v11.01
. All works fine but some times I faced some problem with DB. When I try to delete or update some row in DB, DB going to Recovery mode and row that I tried to Update or delete is not affected. This problem is occurred randomly in random tables.
First time I thought that there some problems with my code, and I rewrote it with transactions but it is not helped me. When I try to update row with DBForge, this app also hangs.
Also I thought that it was a problem with concurrency in golang, I also rewrote my code without concurrency. Did not help.
DB also configured to use multi-threading.
It is my endpoint controller for deletion:
var DeleteAntenna = func(res http.ResponseWriter, req *http.Request) {
antenna_id := req.URL.Query().Get("antenna_id")
tx, err := database.DB.Begin()
if err != nil {
fmt.Println(err.Error())
http.Error(res, err.Error(), 400)
tx.Rollback()
return
}
_, err = tx.Exec("UPDATE new_rollout_managment.cell SET antenna_id = NULL WHERE antenna_id = $1;", antenna_id)
if err != nil {
fmt.Println(err.Error())
http.Error(res, err.Error(), 400)
return
}
_, err = tx.Exec(`DELETE FROM "new_rollout_managment".antenna WHERE id = $1;`, antenna_id)
if err != nil {
fmt.Println(err.Error())
http.Error(res, err.Error(), 400)
tx.Rollback()
return
}
defer tx.Commit()
resp := u.Message(true, "Deleted")
resp["Deleted_antenna"] = antenna_id
u.Respond(res, resp)
}
Please share any ideas