Override elasticsearch setting for STI note models
What does this MR do?
It overrides elasticsearch variables to assure that Note
's subclasses use same index and mapping.
Are there points in the code the reviewer needs to double check?
Why was this MR needed?
elasticsearch-rails
0.1.9 doesn't support STI properly. Although overriding class instance variables is not ideal, it's best option at the moment. Alternatives are:
- define explicitly
index_name
,document_type
andmappings
in each subclass (which would be annoying given the fact we have a concern for this already) - upgrade to
elasticsearch-rails
version 5.x - newer versions already supports enabling inheritance https://github.com/elastic/elasticsearch-rails/tree/master/elasticsearch-model#settings but I'm not convinced about usability/stability of the newer version at this point. I couldn't make this working together with module include we use, also I was hitting errorsstack level too deep
which is known one (https://github.com/elastic/elasticsearch-rails/issues/792) and would require additional workarounds. - I think it makes sense to create a follow-up issue for switching to 5.x version one/two cycles later (also after we switch to rails 5).
Screenshots (if relevant)
Does this MR meet the acceptance criteria?
-
Changelog entry added, if necessary -
Documentation created/updated -
API support added -
Tests added for this feature/bug - Conforms to the code review guidelines
-
Has been reviewed by a UX Designer -
Has been reviewed by a Frontend maintainer -
Has been reviewed by a Backend maintainer -
Has been reviewed by a Database specialist
-
-
EE specific content should be in the top level /ee
folder -
Conforms to the merge request performance guidelines -
Conforms to the style guides -
Conforms to the database guides -
If you have multiple commits, please combine them into a few logically organized commits by squashing them -
Internationalization required/considered -
If paid feature, have we considered GitLab.com plan and how it works for groups and is there a design for promoting it to users who aren't on the correct plan -
End-to-end tests pass ( package-and-qa
manual pipeline job)
What are the relevant issue numbers?
Closes #5705 (closed)
Edited by Nick Thomas