Поиск блокировки чтения-записи в Django с использованием PostgreSQL, например, SELECT FOR SHARE - PullRequest
3 голосов
/ 12 марта 2020

Я блокирую блокировку чтения-записи в Django, используя PostgreSQL.

Теперь мне интересно:

  1. Есть ли веская причина, по которой это не было реализовано в Django -ORM?
  2. Кто-нибудь знает какую-нибудь стороннюю библиотеку для этого?
  3. Или какая-нибудь легкая работа вокруг?

Ответы [ 2 ]

0 голосов
/ 15 марта 2020
  1. Есть ли веская причина, по которой это не было реализовано в Django -ORM?

Отправленный тикет, вероятно, объясняет причину: нет каждый достаточно мотивирован, чтобы написать патч.

Кто-нибудь знает какую-либо стороннюю библиотеку для этого?

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

Или какая-нибудь простая работа?

Наверное, нет. Но вот несколько вариантов:

  1. У каждого ORM, которого я знаю, есть запасной люк для raw SQL. Вы, вероятно, знаете это, но неохотно пользуетесь им ... Но поскольку у вас также нет мотивации для выполнения запроса на извлечение, это, вероятно, означает, что у вас нет сотен запросов, требующих функциональности SELECT FOR SHARE. Так что вы должны рассмотреть это. Выполнение необработанных SQL запросов
  2. Хранимые процедуры как Стив Упомянуто https://docs.djangoproject.com/en/3.0/topics/db/sql/#calling Хранимые процедуры
  3. Последний прокомментируйте отмеченное вами сообщение от человека (David Schwärzle), который утверждает, что у него есть решение (не только для PostgreSQL конкретно, но, тем не менее, для решения) ... возможно, вам следует попытаться связаться с ним.
  4. Еще не пробовал, но, вероятно, вы можете добавить желаемую функциональность путем написания собственных выражений запроса
0 голосов
/ 15 марта 2020

Разве вы не можете обернуть функцию logi c в pl / pg sql, которая использует select для общего ресурса, и затем вы вызываете функцию из django?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...