Hello,
I am writing to you to establish some sort of consensus on how to proceed 
with this bug/PR:

* PR https://github.com/django/django/pull/9518
* BUG https://code.djangoproject.com/ticket/28975

With regard to the problem - the current implementation is that a query is 
ran to determine
if the extension exists or not in the current database. That query unlike 
`CREATE EXTENSION ...`
does not require superuser status on the executing database user.

The pros and cons for this implementation:

### Pros
* Operates as normal with the only addition that if it already exists we 
dont
run the CREATE EXTENSION thus the application wont fail if the user is a 
non-superuser.

### Cons:
* Hard to test due to the fragility of the tests

By hard to test, I mean that I can't easily test it because current 
implementation leads some sort of race condition
and sometimes the tests fail. At least if you look at my current tests (yes 
I am a new to this).

I did talk about this on the irc channel #django and #django-dev to try to 
solve it - however
the recommendation was to write on the mailing list to try to establish a 
consensus on a proper
way to go forward. This especially since another create suggestion was put 
forward by Ramiro Morales
as per: https://code.djangoproject.com/ticket/28975#comment:5

This simply suggests to remove the automatic creation all together and have 
the user do it explicitly
either via:

> Manually, externally -- For cases like the OP describes
> Via a migration -- For cases in which the user Django connects to 
Postgres as has DB superuser rights there as it's assumed 

So my question is rather - which option does make most sense and also which 
one does not break any existing applications
that might rely on this - or is that not an issue? From my talks on irc it 
seems like this sort of change wont be backported to say 1.11.x.

PS. Maybe its better with a solution that fits the case for *ANY* extension 
since creation of any extension will either way 
require superuser status.

Any guidance or help would be appreciated as I am very eager to make my 
first ever contribution :-)

-- 
You received this message because you are subscribed to the Google Groups 
"Django developers  (Contributions to Django itself)" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/django-developers.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-developers/deeaba31-8d7f-4763-a0b4-48d250944404%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to