Frage Ecto.StaleEntryError beim Aktualisieren


Manchmal komme ich (Ecto.StaleEntryError) attempted to update a stale struct wenn versucht wird, den Datensatz zu aktualisieren. Ich habe in Ectos Unterlagen kein Rezept gefunden, um das zu vermeiden, also was soll ich tun, um das zu vermeiden?

P.S. Ich benutze PostgreSQL 9.6 über Postgrex, Ecto 2.1.3.


5
2018-04-16 16:23


Ursprung


Antworten:


Es sieht so aus, als ob Sie ein Schema aus der Datenbank abrufen und aktualisieren, nachdem es an anderer Stelle in Ihrer App aktualisiert wurde. Holst du es, hängst daran auf und aktualisierst es später? Wenn ja, holen, ändern und aktualisieren.

Direkt aus der Ecto-Dokumentation:

When a conflict happens (a record which has been previously fetched is
being updated, but that same record has been modified since it was
fetched), an `Ecto.StaleEntryError` exception is raised.

7
2018-04-16 18:27