@greenpower

Как заставить работать регистронезависимый поиск с кириллицей в SQLAlchemy/Postgres?

Я использую SQLAlchemy и СУБД PostgreSQL.

Пусть есть:

class Product(db.Model):
	__tablename__ = 'products'
	id = db.Column(db.Integer, primary_key=True)
	name = db.Column(db.String)

	def __init__(self, name):
		self.name = name


и сделано

>>> p1 = models.Product(u'Курага')
>>> db.session.add(p1)
>>> db.session.commit()
>>> p2 = models.Product(u'Apple')
>>> db.session.add(p2)
>>> db.session.commit()
>>> from sqlalchemy import func
>>> db.session.query(models.Product).filter(func.lower(models.Product.name) == u'курага').all()
[]
>>> db.session.query(models.Product).filter(func.lower(models.Product.name) == u'apple').all()
[<app.models.Product object at 0x1035f4310>]


а также

>>> db.session.query(models.Product).filter(models.Product.name.ilike(u'%курага%')).all()
[]
>>> db.session.query(models.Product).filter(models.Product.name.ilike(u'%apple%')).all()
[<app.models.Product object at 0x103b2c210>]


Как заставить работать с кириллицей?

Заранее спасибо и заранее сори, если недогуглил (:
  • Вопрос задан
  • 2204 просмотра
Решения вопроса 1
@greenpower Автор вопроса
Помогло:
psql (9.4.1)
Type "help" for help.

postgres=# CREATE DATABASE dbname ENCODING 'UTF-8' LC_COLLATE 'ru_RU.UTF-8' LC_CTYPE 'ru_RU.UTF-8' TEMPLATE=template0
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы