Persist blocking issues count on database

What does this MR do?

Persist blocking issues count on database. This will avoid slow queries when ordering issues by blocking counts.

For more information check: !34665 (comment 376762008)

Related to #34247 (closed)

Migration output

== 20200720191134 AddBlockingIssuesCountToIssues: migrating ===================
-- column_exists?(:issues, :blocking_issues_count)
   -> 0.0048s
-- add_column(:issues, :blocking_issues_count, :integer, {:default=>0, :null=>false})
   -> 0.0013s
-- transaction_open?()
   -> 0.0000s
-- index_exists?(:issues, [:project_id, :state_id, :blocking_issues_count], {:name=>"index_issue_on_project_id_state_id_and_blocking_issues_count", :algorithm=>:concurrently})
   -> 0.0080s
-- add_index(:issues, [:project_id, :state_id, :blocking_issues_count], {:name=>"index_issue_on_project_id_state_id_and_blocking_issues_count", :algorithm=>:concurrently})
   -> 0.0084s
== 20200720191134 AddBlockingIssuesCountToIssues: migrated (0.0301s) ==========

Index creation time

exec CREATE INDEX CONCURRENTLY "testindex" ON "issues" ("project_id", "state_id", "blocking_issues_count")
Session: joe-bslc4g8350j74np1uesg
The query has been executed. Duration: 24.887 min (edited) 

Conformity

Edited by Felipe Cardozo

Merge request reports

Loading