Thank you, Reinout.
I changed the definition of 'allow_syncdb' to the following:
<code>
def allow_syncdb(self, db, model):
# db is a string of database name.
label = model._meta.app_label
if label == 'books':
dbName = 'test'
else:
dbName = None
if dbName == db:
return True
else:
return None
</code>
Now './manage.py syncdb' can run through with no problems. However, it
doesn't create the database 'test.sqlite', which means the models in the
app, books, are still installed in the default database.
Also, I am using django v1.3.
In addition, about the *two* things you mentioned, how can I test for that?
It seems all the functions defined in the class DBRouter are called
internally by django. I don't know how to make django print something so
that I know what's going on when django calls those function.
Again, thank you very much.
On Wed, Aug 24, 2011 at 2:15 AM, Reinout van Rees <[email protected]>wrote:
> On 23-08-11 01:31, Jim wrote:
>
>> def allow_syncdb(self, db, model):
>> # db is a string of database name.
>> label = model._meta.app_label
>> if label == 'books':
>> dbName = 'test'
>> else:
>> dbName = None
>> return dbName == db
>>
>
> I'd do the "if" part as follows:
>
> if label == 'books':
> if db == 'test':
> return True
> return False
> if db == 'test':
> return False
> return None # None means 'no opinion'.
>
> iirc allow_syncdb() ought to return True/False to indicate whether a
> certain model should be synced to a certain database. So you need to make
> sure *two* things:
>
> - Your special models only end up in your special database and not in
> another.
>
> - Other models (like the django_content_type table that gives you
> problems!) should not end up in your special deatabase.
>
>
>
> Reinout
>
> --
> Reinout van Rees http://reinout.vanrees.org/
> [email protected]
> http://www.nelen-schuurmans.**nl/<http://www.nelen-schuurmans.nl/>
> "If you're not sure what to do, make something. -- Paul Graham"
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Django users" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to django-users+unsubscribe@**
> googlegroups.com <django-users%[email protected]>.
> For more options, visit this group at http://groups.google.com/**
> group/django-users?hl=en<http://groups.google.com/group/django-users?hl=en>
> .
>
>
--
You received this message because you are subscribed to the Google Groups
"Django users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/django-users?hl=en.