#22022: Allow field subclasses to require additional SQL -------------------------------------+------------------------------------- Reporter: mjtamlyn | Owner: nobody Type: New | Status: new feature | Version: master Component: Database | Keywords: layer (models, ORM) | Has patch: 1 Severity: Normal | Needs tests: 0 Triage Stage: | Easy pickings: 0 Unreviewed | Needs documentation: 0 | Patch needs improvement: 1 | UI/UX: 0 | -------------------------------------+------------------------------------- '''Problem'''
In postgres, a number of data types require a specific extension to be installed. We have one instance of this in core at present, which is the `postgis` extension. Our documentation recommends[1] (in postgres 9.1+) that you explicitly create the extension in your primary database by hand, and then we customise the `_create_test_db` method on the postgis database backend to ensure the test database has the relevant extensions installed. Other third party apps[2] recommend adding the extension to the template to ensure it's present in tests. I wish to avoid adding a custom backend to d.c.postgres if at all possible, especially as using it in conjunction with gis should be permissible. Consequently, I'd like if possible for model fields to have `pre_create_sql` to allow each individual field to create the extensions as needed. The same mechanism could also be used for a user defined custom field to create functions which could then be used as a custom transform object. This feature will be useful for: 1) one part of the de-hack-gis project 2) hstore 3) citext, trigrams, generating uuids database side and other possible future features of d.c.postgres I've written a draft patch[3]. It probably needs some work (hence patch needs improvement) but an initial review of the names and code layout would be useful. [1] https://docs.djangoproject.com/en/1.6/ref/contrib/gis/install/postgis/#creating-a -spatial-database-with-postgis-2-0-and-postgresql-9-1 [2] https://github.com/djangonauts/django-hstore#running-the-tests [3] https://github.com/django/django/pull/2266 -- Ticket URL: <https://code.djangoproject.com/ticket/22022> Django <https://code.djangoproject.com/> The Web framework for perfectionists with deadlines. -- You received this message because you are subscribed to the Google Groups "Django updates" group. To unsubscribe from this group and stop receiving emails from it, send an email to django-updates+unsubscr...@googlegroups.com. To post to this group, send email to django-updates@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/django-updates/051.f198cf54e12fda18e6f2de1337d5c4bf%40djangoproject.com. For more options, visit https://groups.google.com/groups/opt_out.