#32965: Django related manager allways choose db_for_read router and fail
update/delete
-------------------------------------+-------------------------------------
     Reporter:  Regressor            |                    Owner:  nobody
         Type:  Bug                  |                   Status:  closed
    Component:  Database layer       |                  Version:  3.1
  (models, ORM)                      |
     Severity:  Normal               |               Resolution:  invalid
     Keywords:  related manager,     |             Triage Stage:
  db_for_read, exception, db,        |  Unreviewed
  router                             |
    Has patch:  0                    |      Needs documentation:  0
  Needs tests:  0                    |  Patch needs improvement:  0
Easy pickings:  0                    |                    UI/UX:  0
-------------------------------------+-------------------------------------

Comment (by Regressor):

 Replying to [comment:1 Mariusz Felisiak]:
 > Thanks for this report, however IMO it's not a bug. It's
 [https://docs.djangoproject.com/en/3.2/topics/db/multi-db/#selecting-a
 -database-to-delete-from documented] that `DELETE` will be executed on the
 same database that was used to retrieve the object, so you need to use
 `using`. I would recommend to use related manager's methods i.e. `clear()`
 instead of chaining `all()` and `delete()`, e.g.
 `instance.mentor_binds.clear()`, and `set()` instead of `update()`, e.g.
 `instance.mentor_binds.set(...)`.

 Oh. It try to delete/update on read database, but this is not a bug
 because it documented. Ok. This automatic database routers has too many
 issues to be used in real life. There was ~8000 lines in our project to
 start working with read replicas and it still doesn't work as expected. It
 looks like we should just disable this config and try aws serverless rds.

-- 
Ticket URL: <https://code.djangoproject.com/ticket/32965#comment:2>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/067.4d3dafe9720efc8d7b65395b83bcc90b%40djangoproject.com.

Reply via email to