You do not have permission to delete messages in this group
Copy link
Report message
Show original message
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to Django users
I am planning some utility helper code to push selected records and
their children from our staging database into the production database.
The current database would be 'default' and I could add a second one
called 'production' then read from 'default' and write to 'production'.
(I need to check we are on the staging server).
... but I don't quite understand. There are no custom managers involved;
only the out-of-the-box MyModel.objects.
Q1. Should I be using db_manager()?
The plan is to write some utility code like this ...
from substance.models import Substance def
write_substance_to_production(subst): prd_subst, create =
Substance.objects.using('production').get_or_create( name=subst.name, )
if create: pass # copy all subst attributes except id to prd_subst
Q2. Is this a reasonable approach?
Thanks for any hints
Mike
Mike Dewhirst
unread,
Nov 4, 2016, 12:38:00 AM11/4/16
Reply to author
Sign in to reply to author
Forward
Sign in to forward
Delete
You do not have permission to delete messages in this group
Copy link
Report message
Show original message
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to Django users
(this one might be easier to read)
Fred Stluka
unread,
Jan 2, 2017, 8:33:08 PM1/2/17
Reply to author
Sign in to reply to author
Forward
Sign in to forward
Delete
You do not have permission to delete messages in this group
Copy link
Report message
Show original message
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to django...@googlegroups.com
Mike,
Maybe you don't need a custom DB manager. Perhaps a simple
DB router would suffice? It's a Django way to specify which DB
to use based on which model is being used, whether it is being
read/written, etc.
You do not have permission to delete messages in this group
Copy link
Report message
Show original message
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to django...@googlegroups.com
On 3/01/2017 12:32 PM, Fred Stluka wrote:
> Mike,
>
> Maybe you don't need a custom DB manager. Perhaps a simple
> DB router would suffice? It's a Django way to specify which DB
> to use based on which model is being used, whether it is being
> read/written, etc.
That's the approach I took. The essence of the problem: it ain't simple.
There are many and varied relationships and any transfer of *related
sets* of data to another database means transferring existing PKs which
tie the sets together. Maybe if it was a foreseen design criterion we
would have used UUIDs instead of incrementing integer ids.
The DB router is designed for naturally segmented schemas being on
different databases. My attempt was against the grain.
You do not have permission to delete messages in this group
Copy link
Report message
Show original message
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to django...@googlegroups.com
Mike,
Yeah. Makes sense. Good thought about the UUIDs! My success
was due partly to the fact that I could afford to move entire
tables,
not just selected rows, and could move all related tables as well.
Trying to move just some of a related set of data from one DB to
another with each DB generating its own set of auto-incremented
PKs would have been a problem.