How to use schemas in Django? How to use schemas in Django? postgresql postgresql

How to use schemas in Django?


Maybe this will help.

DATABASES = {    'default': {        'ENGINE': 'django.db.backends.postgresql_psycopg2',        'OPTIONS': {            'options': '-c search_path=your_schema'        },        'NAME': 'your_name',        'USER': 'your_user',        'PASSWORD': 'your_password',        'HOST': '127.0.0.1',        'PORT': '5432',    }}

I get the answer from the following link:http://blog.amvtek.com/posts/2014/Jun/13/accessing-multiple-postgres-schemas-from-django/


I've been using:

db_table = '"schema"."tablename"'

in the past without realising that only work for read-only operation. When you try to add new record it would fail because the sequence would be something like "schema.tablename"_column_id_seq.

db_table = 'schema\".\"tablename'

does work so far. Thanks.


It's a bit more complicated than tricky escaping. Have a look at Ticket #6148 in Django for perhaps a solution or at least a patch. It makes some minor changes deep in the django.db core but it will hopefully be officially included in django.After that it's just a matter of saying

db_schema = 'whatever_schema'

in the Meta class or for a global change set

DATABASE_SCHEMA = 'default_schema_name'

in settings.py

UPDATE: 2015-01-08

The corresponding issue in django has been open for 7 years and the patch there will not work any more.The correct answer to this should be...

At the moment you can't use postgreSQL schemas in django out of the box.