sql >> Databasteknik >  >> RDS >> PostgreSQL

Hur kan jag aktivera unaccent-tillägget på en redan befintlig modell

En migreringsfil måste skapas och tillämpas manuellt.

Skapa först en tom migrering:

./manage.py makemigrations myapp --empty

Öppna sedan filen och lägg till UnaccentExtension till operations :

from django.contrib.postgres.operations import UnaccentExtension


class Migration(migrations.Migration):

    dependencies = [
        (<snip>)
    ]

    operations = [
        UnaccentExtension()
    ]

Använd nu migreringen med ./manage.py migrate .

Om du skulle få följande fel under det sista steget:

django.db.utils.ProgrammingError: permission denied to create extension "unaccent"
HINT:  Must be superuser to create this extension.

... tillåt sedan tillfälligt superanvändarrättigheter för din användare genom att utföra postgres# ALTER ROLE <user_name> SUPERUSER; och dess NOSUPERUSER motsvarighet. pgAdminIII kan också göra detta.

Njut nu av den unaccenta funktionen med Django:

>>> Person.objects.filter(first_name__unaccent=u"Helène")
[<Person: Michels Hélène>]



  1. "Självsignerat certifikat"-fel under förfrågan den Heroku-värdade Postgres-databasen från Node.js-applikationen

  2. lista resultat i mysql från samma tabell

  3. Ta bort rader från mysql-servern från en lista med ID:s C#

  4. Parsar tnsnames.ora i Visual C# 2008