PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Bagaimana saya bisa mengaktifkan ekstensi tanpa aksen pada model yang sudah ada?

File migrasi perlu dibuat dan diterapkan secara manual.

Pertama, buat migrasi kosong:

./manage.py makemigrations myapp --empty

Kemudian buka file dan tambahkan UnaccentExtension untuk operations :

from django.contrib.postgres.operations import UnaccentExtension


class Migration(migrations.Migration):

    dependencies = [
        (<snip>)
    ]

    operations = [
        UnaccentExtension()
    ]

Sekarang terapkan migrasi menggunakan ./manage.py migrate .

Jika Anda mendapatkan kesalahan berikut selama langkah terakhir itu:

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

... lalu izinkan hak superuser untuk sementara kepada pengguna Anda dengan melakukan postgres# ALTER ROLE <user_name> SUPERUSER; dan NOSUPERUSER its rekan. pgAdminIII dapat melakukan ini juga.

Sekarang nikmati fungsionalitas tanpa aksen menggunakan 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. Barman 2.11:barman-cloud-restore dan barman-cloud-wal-restore

  2. EXECUTE...USING pernyataan di PL/pgSQL tidak bekerja dengan tipe record?

  3. cara memindahkan tabel dari publik ke skema lain di Postgres

  4. Mengapa saya mendapatkan ActionView::Template::Error:undefined method `name' for nil:NilClass di Heroku tetapi tidak secara lokal

  5. Parameter Npgsql 4.0 dan Nilai Null