Eine Migrationsdatei muss manuell erstellt und angewendet werden.
Erstellen Sie zunächst eine leere Migration:
./manage.py makemigrations myapp --empty
Öffnen Sie dann die Datei und fügen Sie UnaccentExtension
hinzu zu operations
:
from django.contrib.postgres.operations import UnaccentExtension
class Migration(migrations.Migration):
dependencies = [
(<snip>)
]
operations = [
UnaccentExtension()
]
Wenden Sie nun die Migration mit ./manage.py migrate
an .
Wenn Sie während des letzten Schritts die folgende Fehlermeldung erhalten:
django.db.utils.ProgrammingError: permission denied to create extension "unaccent"
HINT: Must be superuser to create this extension.
... dann gewähren Sie Ihrem Benutzer vorübergehend Superuser-Rechte, indem Sie postgres# ALTER ROLE <user_name> SUPERUSER;
ausführen und dessen NOSUPERUSER
Gegenstück. pgAdminIII kann das auch.
Genießen Sie jetzt die Unakzent-Funktionalität mit Django:
>>> Person.objects.filter(first_name__unaccent=u"Helène")
[<Person: Michels Hélène>]