diff --git a/app/models/project.rb b/app/models/project.rb index 4e2904731..3ec3bf764 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -13,8 +13,10 @@ class Project < ApplicationRecord belongs_to :ignore, optional: true belongs_to :license, optional: true belongs_to :owner, class_name: 'User', foreign_key: :user_id - belongs_to :project_category, optional: true , :counter_cache => true - belongs_to :project_language, optional: true , :counter_cache => true + # belongs_to :project_category, optional: true , :counter_cache => true + # belongs_to :project_language, optional: true , :counter_cache => true + belongs_to :project_category, optional: true + belongs_to :project_language, optional: true has_many :project_trends, dependent: :destroy has_many :watchers, as: :watchable, dependent: :destroy has_many :fork_users, dependent: :destroy 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 962a51f64..9a27b005e 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,30 +1,33 @@ class AddIndexForProjectLanguageAndCategory < ActiveRecord::Migration[5.2] def change - execute "ALTER TABLE project_categories ADD PRIMARY KEY (id);" - execute "ALTER TABLE project_languages ADD PRIMARY KEY (id);" + change_column :project_categories, :id, :integer, null: false + change_column :project_languages, :id, :integer, null: false - # 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 + ProjectCategory.update_all(projects_count:0) + ProjectLanguage.update_all(projects_count:0) - # 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) + 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 = 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) + 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 = 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