sql >> Database >  >> RDS >> PostgreSQL

Hoe kan ik de accentloze extensie activeren op een reeds bestaand model?

Een migratiebestand moet handmatig worden gemaakt en toegepast.

Maak eerst een lege migratie:

./manage.py makemigrations myapp --empty

Open vervolgens het bestand en voeg UnaccentExtension toe naar operations :

from django.contrib.postgres.operations import UnaccentExtension


class Migration(migrations.Migration):

    dependencies = [
        (<snip>)
    ]

    operations = [
        UnaccentExtension()
    ]

Pas nu de migratie toe met ./manage.py migrate .

Als u de volgende foutmelding krijgt tijdens die laatste stap:

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

... geef vervolgens tijdelijk superuser-rechten aan uw gebruiker door postgres# ALTER ROLE <user_name> SUPERUSER; uit te voeren en zijn NOSUPERUSER tegenhanger. pgAdminIII kan dit ook.

Geniet nu van de ongeaccentueerde functionaliteit met Django:

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



  1. Is er een Oracle-equivalent van OUTPUT INSERTED.* van SQL Server?

  2. Schema gekwalificeerde tabellen met SQLAlchemy, SQLite en Postgresql?

  3. Hoe sluit ik mySQL aan in mijn Android-project?

  4. SQL Server vervangen, alles verwijderen na een bepaald teken