On Jul 14, 8:23 am, Benjamin Kreeger <benjaminkree...@gmail.com>
wrote:
> I was using PostgreSQL at first, but then I found information about
> reading data across databases only with MySQL, so I'm using MySQL for
> the time being.
>
> Now, I don't have a database set for P1 yet because it's just
> displaying reStructuredText files; if I were to set up that site to
> access P2's database (in P1's settings.py file), would I be able to
> (eek) do raw SQL to get the data to display the way I want? Or would
> there be an easier way to do that WITHOUT raw SQL, and WITHOUT
> duplicating that model declared on P2?

I didn't realise that P1 didn't have a database at all -- if that's
the case, then you can just use the credentials from P2 (the
DATABASE_* lines from settings.py) in P1's settings. You can define
the same models -- it's as simple as installing the same apps that P2
uses, there should be no duplication of code, and you'll have access
to all of the P2 data from P1.

If P1 needs its own database, however, (and you're using MySQL, and
your databases are on the same server), then you can use this patch to
django/db/backends/mysql/base.py (this is based on the 1.0.x branch;
other branches should be similar)

===================================================================
--- django/db/backends/mysql/base.py    (revision 10742)
+++ django/db/backends/mysql/base.py    (working copy)
@@ -143,7 +143,7 @@
     def quote_name(self, name):
         if name.startswith("`") and name.endswith("`"):
             return name # Quoting once is enough.
-        return "`%s`" % name
+        return ".".join(["`%s`" % name_part for name_part in
name.split(".")])

     def random_function_sql(self):
         return 'RAND()'


That will let you define, in your P1 models, a complete table name
like this:

class Example(models.Model):
    ... fields ...

    class Meta:
        db_table = 'p2_database.table_name'

And mysql will get the data from the right database. No raw SQL
required.

Ian
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to