Opened 14 years ago

Closed 14 years ago

Last modified 13 years ago

#12541 closed (fixed)

Add support for describing master/slave arrangements in multi-db

Reported by: Russell Keith-Magee Owned by: nobody
Component: Database layer (models, ORM) Version: 1.2-alpha
Severity: Keywords:
Cc: Jeff Balogh Triage Stage: Accepted
Has patch: no Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description

Django's multidb setup can be used to implement master/slave database arrangements - however, there is no allowance made for the fact that an object retrieved from a slave is actually compatible with an object retrieved from the master (or, for that matter, another slave).

It should be possible to define data relationships in DATABASES, and have instance._state.db reflect those relationships - i.e., the database state should describe the actual data *source*, not just the databse from which the data was retrieved.

Once this support is in place, the cross-database validation checks (that were commented out just before the merge of the soc branch) can be reintroduced. Those checks should be modified to check the source, not the raw db alias.

There has been some initial discussion on django-dev about this subject.

Change History (5)

comment:1 by Russell Keith-Magee, 14 years ago

milestone: 1.2
Triage Stage: UnreviewedAccepted

Marking this for the 1.2 milestone because there is a reasonable solution on the table that shouldn't be too hard to implement.

comment:2 by Jeff Balogh, 14 years ago

Cc: Jeff Balogh added

comment:3 by Russell Keith-Magee, 14 years ago

See the patch t12540-r12262.1.diff attached to #12540 - it includes a draft fix for this ticket.

comment:4 by Russell Keith-Magee, 14 years ago

Resolution: fixed
Status: newclosed

(In [12272]) Fixed #12540, #12541 -- Added database routers, allowing for configurable database use behavior in a multi-db setup, and improved error checking for cross-database joins.

comment:5 by Jacob, 13 years ago

milestone: 1.2

Milestone 1.2 deleted

Note: See TracTickets for help on using tickets.
Back to Top