База данных Django Postgres с несколькими схемами. Как добавить записи в определенную схему через shell
В настоящее время я работаю над django multi tenant, используя общую базу данных с несколькими схемами. Как я могу добавить записи в конкретную схему через shell.Как я могу получить объекты базы данных конкретной схемы в views.py
После долгих поисков я получил ответ.
from django.db import connection
connection.schema_name = 'Your schema name'
Затем отфильтруйте модели, это покажет только записи в этой схеме.
Предположим, после назначения схемы connection.schema_name = 'Your schema name'
и фильтрации модели User User.objects.all()
она покажет только объекты пользователей в этой схеме.
Если мы зададим имя схемы, которая еще не существует, например connection.schema_name = 'Schema name which is not present'
, то при фильтрации модели она всегда будет показывать записи схемы public
Если вы используете django-tenants, вы можете использовать tenant_command
для запуска команды на определенной схеме (т.е. арендаторе). Вы можете найти документацию tenant_command
здесь.
В вашем случае, команда, которую вы ищете, следующая:
python3 manage.py tenant_command shell --schema [SCHEMA_NAME]
<