Это должно быть сделано непосредственно в базе данных.Odoo поддерживает только автоматическое создание индекса для отдельных столбцов.
Пример из Документация PostgreSQL 9.6
CREATE INDEX test2_mm_idx ON test2 (major, minor);
Редактировать: Вкл. aдоклад, который описан здесь Odoo рекомендует использовать метод init()
модели.
Вам может понадобиться (в редких случаях, PostgreSQL может комбинировать индексы) для добавления пользовательскихтип индекса или индекса для нескольких полей одновременно -> Используйте метод init для их объявления
#Example on mail.message, index on two fields
@api.model_cr
def init(self):
self._cr.execute("""
SELECT indexname FROM pg_indexes
WHERE indexname = 'mail_message_model_res_id_idx'
""")
if not self._cr.fetchone():
self._cr.execute("""
CREATE INDEX mail_message_model_res_id_idx
ON mail_message (model, res_id)
""")