| @@ -1,18 +1,30 @@ | |||||
| class AddIndexForProjectLanguageAndCategory < ActiveRecord::Migration[5.2] | class AddIndexForProjectLanguageAndCategory < ActiveRecord::Migration[5.2] | ||||
| def change | def change | ||||
| add_index :project_categories, :id unless index_exists?(:project_categories, :id) | |||||
| add_index :project_languages, :id unless index_exists?(:project_languages, :id) | |||||
| execute "ALTER TABLE project_categories ADD PRIMARY KEY (id);" | |||||
| execute "ALTER TABLE project_languages ADD PRIMARY KEY (id);" | |||||
| project_categories = Project.joins(:project_category).group("project_categories.id").size | |||||
| project_categories.each do |k,v| | |||||
| puts "#######____update_project_category_id____##############{k}" | |||||
| ProjectCategory.update_counters(k, projects_count: v) | |||||
| # project_categories = Project.joins(:project_category).group("project_categories.id").size | |||||
| # project_categories.each do |k,v| | |||||
| # puts "#######____update_project_category_id____##############{k}" | |||||
| # ProjectCategory.update_counters(k, projects_count: v) | |||||
| # end | |||||
| # project_languages = Project.joins(:project_language).group("project_languages.id").size | |||||
| # project_languages.each do |k,v| | |||||
| # puts "#######____update_project_language_id____##############{k}" | |||||
| # ProjectLanguage.update_counters(k, projects_count: v) | |||||
| # end | |||||
| project_categories = ProjectCategory.select(:id, :projects_count).includes(:projects) | |||||
| project_categories.each do |i| | |||||
| puts "#######____update_project_category_id____##############{i.id}" | |||||
| ProjectCategory.reset_counters(i.id, :projects) | |||||
| end | end | ||||
| project_languages = Project.joins(:project_language).group("project_languages.id").size | |||||
| project_languages.each do |k,v| | |||||
| puts "#######____update_project_language_id____##############{k}" | |||||
| ProjectLanguage.update_counters(k, projects_count: v) | |||||
| project_languages = ProjectLanguage.select(:id, :projects_count).includes(:projects) | |||||
| project_languages.each do |i| | |||||
| puts "#######____update_project_language_id____##############{i.id}" | |||||
| ProjectLanguage.reset_counters(i.id, :projects) | |||||
| end | end | ||||
| end | end | ||||
| end | end | ||||