Friday, November 8, 2013

Re: Connection with third database using multidb implementing DB Router


I will check it ! thanks ! 

On Fri, Nov 8, 2013 at 12:19 PM, George Silva <georger.silva@gmail.com> wrote:
Let me explain this better.

I've created a custom manager, in which I replaced the default database alias it should connect.

class ExternalManager(models.Manager):
    """
Manager customizado para buscar os dados no banco legado.
"""
    alias = None

    def __init__(self, alias=None):
        self.alias = alias
        super(LegadoManager, self).__init__()

    def get_query_set(self):
        """
Retorna um query set conectando ao banco legado.
"""
        if not hasattr(self.model, '_db_alias'):
            self.model._db_alias = self.alias
        qs = QuerySet(self.model)
        if self.model._db_alias is not None:
            qs = qs.using(self.model._db_alias)
        return qs


    

Now, create your model and override the objects property, passing the name of the database configured in settings.py as the alias.

Like this:

class ModelInAnotherDatabase(models.Model):

    name = models.CharField()

    objects = ExternalManager(alias="external")

Where external is the database name configured in settings.py.


On Fri, Nov 8, 2013 at 3:11 PM, Ovnicraft <ovnicraft@gmail.com> wrote:



On Fri, Nov 8, 2013 at 11:39 AM, George Silva <georger.silva@gmail.com> wrote:
I only had to query external databases.

I've created my models as managed=False and implemented a custom manager that redefined the default database configuration. We did not had situations where depending on a certain condition the target database would change, but this worked just fine.

What database configuration did you change ?

Regards, 


On Fri, Nov 8, 2013 at 12:45 PM, Ovnicraft <ovnicraft@gmail.com> wrote:
Hi to all friends !
 
I am working in django project its has many apps with their default db configured.
So now i need to read (and possible write) to third DB (mysql) and i found a thread[1] here about it.

There are some suggestions about write ReadOnly objects, redefine save methods but i'm not totally convinced about it.

Reading documentation about multidb i found DB routes and it has allow_syndb[2] so my question is, if i code to dont allow sync any model in third db i can query (RAW SQL) without problems ? 

I dont want to write any dirty layer to connect to my third DB just re-use django engine.

I will appreciated your help !

Best regards, 

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/CA%2B16coM5s7KgGrMF4MqTGY5DYZ%2B7M43-4PkV14sm2yNTvstCHA%40mail.gmail.com.
For more options, visit https://groups.google.com/groups/opt_out.



--
George R. C. Silva
SIGMA Consultoria
----------------------------

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/CAGyPVTsLt%2BPcWojAeGJFGqE9oNsR4HA6ecgnYg8zeBU%2BTGFG-g%40mail.gmail.com.

For more options, visit https://groups.google.com/groups/opt_out.



--
Cristian Salamea
@ovnicraft

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/CA%2B16coOOX0W6MjxDvB9GRUjq%3D-tYj4bfZX%2B_K1hV1rUt-uMpiA%40mail.gmail.com.

For more options, visit https://groups.google.com/groups/opt_out.



--
George R. C. Silva
SIGMA Consultoria
----------------------------

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/CAGyPVTsDVY89bjLP2nkEDQ14vJ8K7xG21riFGj70b2HROm731w%40mail.gmail.com.

For more options, visit https://groups.google.com/groups/opt_out.



--
Cristian Salamea
@ovnicraft

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/CA%2B16coOctefCP-cJ-p2ovG3fmZ76-H_GUWMt_JYnajVTra-gBQ%40mail.gmail.com.
For more options, visit https://groups.google.com/groups/opt_out.

0 Comments:

Post a Comment

Subscribe to Post Comments [Atom]

<< Home


Real Estate