PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Как мога да активирам разширението без акцент върху вече съществуващ модел

Файлът за миграция трябва да бъде направен ръчно и приложен.

Първо създайте празна миграция:

./manage.py makemigrations myapp --empty

След това отворете файла и добавете UnaccentExtension към operations :

from django.contrib.postgres.operations import UnaccentExtension


class Migration(migrations.Migration):

    dependencies = [
        (<snip>)
    ]

    operations = [
        UnaccentExtension()
    ]

Сега приложете миграцията с помощта на ./manage.py migrate .

Ако получите следната грешка по време на последната стъпка:

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

... след това временно разрешете суперпотребителски права на вашия потребител, като изпълните postgres# ALTER ROLE <user_name> SUPERUSER; и неговия NOSUPERUSER двойник. pgAdminIII също може да направи това.

Сега се насладете на функционалността без ударение с помощта на Django:

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Въведете ENUM в SQLAlchemy с PostgreSQL

  2. postgres sql, как да се увеличи, когато съществува null

  3. ActiveRecord вложен SELECT

  4. Цикъл върху таблици с PL/pgSQL в Postgres 9.0+

  5. Синтаксис на заявка за LEFT OUTER JOIN на PostgreSQL