From 6daa264e82d3ce3c8d5b9cebae6511d943b99fbb Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Mon, 25 May 2020 11:45:43 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...index_for_project_language_and_category.rb | 32 +++++++++++++------ 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/db/migrate/20200525021613_add_index_for_project_language_and_category.rb b/db/migrate/20200525021613_add_index_for_project_language_and_category.rb index 09765347b..962a51f64 100644 --- a/db/migrate/20200525021613_add_index_for_project_language_and_category.rb +++ b/db/migrate/20200525021613_add_index_for_project_language_and_category.rb @@ -1,18 +1,30 @@ class AddIndexForProjectLanguageAndCategory < ActiveRecord::Migration[5.2] 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 - 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