Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Prevent syncdb from updating database in Django?

I'd like to respect the database as a "read-only" and never write to it. Is there a way to easily prevent syncdb from even bothering to check to update the database?

With Django 1.2 and the ability to have multiple databases, it'd like to be able to query a database for information. I'd never need to actually write to that database.

However, I'd be scared if syncdb ran and attempted to update that database (because I may not have a technically read-only account to that database). Mainly, I'd just like to use/abuse the Django ORM as a way to query that database.

UPDATE: Sorry, I need to be able to sync one of the databases in settings.py, just not this specific one.

like image 946
dlamotte Avatar asked Sep 22 '26 13:09

dlamotte


2 Answers

Heh, I guess I'll answer my own question (RTFM!)...

http://docs.djangoproject.com/en/dev/topics/db/multi-db/#an-example

def allow_syncdb(self, db, model):
     ...

That's a definite start...

like image 146
dlamotte Avatar answered Sep 24 '26 02:09

dlamotte


If you don't need syncdb, don't run it, simple as that. Updating the database is what it does, so if you don't need that, you shouldn't run it - it doesn't do anything else.

However if you're actually asking how to prevent syncdb from running at all, one possibility would be to define a 'dummy' syncdb command inside one of your apps. Follow the custom management command instructions but just put pass inside the command's handle method. Django will always find your version of the command first, making it a no-op.

like image 42
Daniel Roseman Avatar answered Sep 24 '26 04:09

Daniel Roseman



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!