Как использовать схемы в Django?

Wicket также является альтернативой, которая полностью отделяет java от html, поэтому разработчик и программист могут работать вместе и на разных наборах кода с небольшим пониманием друг друга.

Посмотрите на Wicket.

27
задан vncprado 21 July 2009 в 17:30
поделиться

5 ответов

Может быть, это поможет.

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',
    }
}

Я получаю ответ по следующей ссылке: http://blog.amvtek.com/posts/2014/Jun/13/accessing-multiple-postgres-schemas-from-django/

28
ответ дан Ben 14 October 2019 в 12:36
поделиться

Нет явной поддержки Django для схем postgreSQL.

При использовании Django (0.95) нам пришлось добавить search_path к соединителю базы данных Django для PostgreSQL, потому что Django не поддерживал указание схемы, которую использовали таблицы, управляемые ORM.

Взято из:

http://nxsy.org/using-postgresql-schemas-with-sqlalchemy-and-elixir

Общее Ответ заключается в использовании SQLAlchemy для правильного построения SQL.

О, и вот еще одна ссылка с некоторыми предложениями о том, что вы можете сделать с базой Django, расширяя ее, чтобы попытаться поддержать вашу схему:

http://news.ycombinator.com/ пункт? ID = 662901

2
ответ дан AlbertoPL 14 October 2019 в 12:36
поделиться

Я добился успеха, просто сказав

db_table = 'schema\".\"tablename'

в классе Мета, но это действительно некрасиво. И я использовал его только в ограниченных сценариях - он вполне может сломаться, если вы попробуете что-то сложное. И, как было сказано ранее, на самом деле он не поддерживается ...

2
ответ дан 28 November 2019 в 04:15
поделиться

Я использовал:

db_table = '"schema"."tablename"'

в прошлом, но не осознавал, что работает только для операций только для чтения. Когда вы попытаетесь добавить новую запись, это не удастся, потому что последовательность будет чем-то вроде "schema.tablename" _column_id_seq.

db_table = 'schema\".\"tablename'

пока работает. Спасибо.

27
ответ дан 28 November 2019 в 04:15
поделиться

Это немного сложнее, чем хитрый побег. Взгляните на Ticket # 6148 в Django, возможно, решение или, по крайней мере, патч. Он вносит небольшие изменения в ядро ​​django.db, но, надеюсь, он будет официально включен в django. После этого нужно просто сказать

db_schema = 'whatever_schema'

в классе Meta или для набора глобальных изменений

DATABASE_SCHEMA = 'default_schema_name'

в settings.py

ОБНОВЛЕНИЕ: 2015-01-08

Соответствующая проблема в django была открыта для 7 лет и патч там уже работать не будет. Правильный ответ на этот вопрос должен быть ...

В настоящий момент вы не можете использовать схемы postgreSQL в django из коробки.

11
ответ дан 28 November 2019 в 04:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: