PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Làm cách nào để kích hoạt tiện ích mở rộng không phù hợp trên một mô hình đã tồn tại

Tệp di chuyển cần được tạo và áp dụng theo cách thủ công.

Đầu tiên, hãy tạo một di chuyển trống:

./manage.py makemigrations myapp --empty

Sau đó, mở tệp và thêm UnaccentExtension đến operations :

from django.contrib.postgres.operations import UnaccentExtension


class Migration(migrations.Migration):

    dependencies = [
        (<snip>)
    ]

    operations = [
        UnaccentExtension()
    ]

Bây giờ, hãy áp dụng việc di chuyển bằng cách sử dụng ./manage.py migrate .

Nếu bạn gặp lỗi sau trong bước cuối cùng đó:

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

... sau đó tạm thời cấp quyền siêu người dùng cho người dùng của bạn bằng cách thực hiện postgres# ALTER ROLE <user_name> SUPERUSER;NOSUPERUSER của nó đối tác. pgAdminIII tôi cũng có thể làm được điều này.

Bây giờ, hãy tận hưởng chức năng đơn giản bằng 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. Ràng buộc duy nhất với các điều kiện trong MYSQL

  2. Không phân biệt chữ hoa chữ thường như (ilike) trong Datamapper với Postgresql

  3. Bỏ qua url kết nối từ xa WildFly Postgres DataSource

  4. LỖI:quyền bị từ chối đối với giản đồ user1_gmail_com ở ký tự 46

  5. Làm cách nào để truy vấn bằng cách sử dụng các trường bên trong kiểu dữ liệu PostgreSQL JSON mới?