sql >> Database teknologi >  >> RDS >> PostgreSQL

Hvordan kan jeg aktivere unaccent-udvidelsen på en allerede eksisterende model

En migreringsfil skal laves og anvendes manuelt.

Først skal du oprette en tom migrering:

./manage.py makemigrations myapp --empty

Åbn derefter filen og tilføj UnaccentExtension til operations :

from django.contrib.postgres.operations import UnaccentExtension


class Migration(migrations.Migration):

    dependencies = [
        (<snip>)
    ]

    operations = [
        UnaccentExtension()
    ]

Anvend nu migreringen ved hjælp af ./manage.py migrate .

Hvis du får følgende fejl under det sidste trin:

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

... tillad derefter midlertidigt superbrugerrettigheder til din bruger ved at udføre postgres# ALTER ROLE <user_name> SUPERUSER; og dens NOSUPERUSER modpart. pgAdminIII kan også gøre dette.

Nyd nu den unaccente funktionalitet ved hjælp af Django:

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



  1. Pandaer skriver dataramme til andre postgresql-skemaer

  2. Flere CTE i enkelt forespørgsel

  3. Django bulk_create med ignorer rækker, der forårsager IntegrityError?

  4. Hvordan kan jeg opdatere rækker, der ikke matches i KILDEN, når jeg laver en FLUTNING i Oracle SQL?