提交新迁移
This commit is contained in:
parent
70cd068ea8
commit
e808f0bc61
|
@ -155,7 +155,7 @@ class Project < ActiveRecord::Base
|
||||||
# 创建project之后默认创建一个board,之后的board去掉了board的概念
|
# 创建project之后默认创建一个board,之后的board去掉了board的概念
|
||||||
after_create :create_board_sync,:acts_as_forge_activities,:create_project_ealasticsearch_index
|
after_create :create_board_sync,:acts_as_forge_activities,:create_project_ealasticsearch_index
|
||||||
before_destroy :delete_all_members,:delete_project_ealasticsearch_index
|
before_destroy :delete_all_members,:delete_project_ealasticsearch_index
|
||||||
# after_update :update_project_ealasticsearch_index
|
after_update :update_project_ealasticsearch_index
|
||||||
def remove_references_before_destroy
|
def remove_references_before_destroy
|
||||||
return if self.id.nil?
|
return if self.id.nil?
|
||||||
Watcher.delete_all ['watchable_id = ?', id]
|
Watcher.delete_all ['watchable_id = ?', id]
|
||||||
|
@ -1223,28 +1223,29 @@ class Project < ActiveRecord::Base
|
||||||
self.__elasticsearch__.index_document
|
self.__elasticsearch__.index_document
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
# def update_project_ealasticsearch_index
|
|
||||||
# if self.is_public #如果是初次更新成为公开的情况,会报错,那么这条记录尚未被索引过。没有报错就是更新的其他属性
|
def update_project_ealasticsearch_index
|
||||||
# begin
|
if self.is_public #如果是初次更新成为公开的情况,会报错,那么这条记录尚未被索引过。没有报错就是更新的其他属性
|
||||||
# self.__elasticsearch__.update_document
|
begin
|
||||||
# rescue => e
|
self.__elasticsearch__.update_document
|
||||||
# self.__elasticsearch__.index_document
|
rescue => e
|
||||||
# end
|
self.__elasticsearch__.index_document
|
||||||
# else #如果是更新成为私有的,那么索引就要被删除
|
end
|
||||||
# begin
|
else #如果是更新成为私有的,那么索引就要被删除
|
||||||
# self.__elasticsearch__.delete_document
|
|
||||||
# rescue => e
|
|
||||||
#
|
|
||||||
# end
|
|
||||||
# end
|
|
||||||
# end
|
|
||||||
def delete_project_ealasticsearch_index
|
|
||||||
begin
|
begin
|
||||||
self.__elasticsearch__.delete_document
|
self.__elasticsearch__.delete_document
|
||||||
rescue => e
|
rescue => e
|
||||||
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def delete_project_ealasticsearch_index
|
||||||
|
begin
|
||||||
|
self.__elasticsearch__.delete_document
|
||||||
|
rescue => e
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
class AddBoardNumToProjectScore < ActiveRecord::Migration
|
||||||
|
def change
|
||||||
|
add_column :project_scores, :board_num, :integer, :default => false
|
||||||
|
add_column :project_scores, :act_num, :integer, :default => false
|
||||||
|
add_column :project_scores, :attach_num, :integer, :default => false
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,51 @@
|
||||||
|
class UpdateProjectScore < ActiveRecord::Migration
|
||||||
|
def up
|
||||||
|
project_count = Project.all.count / 30 + 2
|
||||||
|
transaction do
|
||||||
|
for i in 1 ... project_count do i
|
||||||
|
Project.page(i).per(30).each do |project|
|
||||||
|
puts project.id
|
||||||
|
unless project.project_score.nil?
|
||||||
|
# update boards
|
||||||
|
unless project.boards.first.nil?
|
||||||
|
boards_count = project.boards.first.topics.count
|
||||||
|
project.project_score.update_attribute(:board_num, boards_count)
|
||||||
|
end
|
||||||
|
# update boards reply
|
||||||
|
unless project.boards.first.nil?
|
||||||
|
messages_count = Message.where("board_id =? and parent_id is not ?", project.boards.first.id, nil).count
|
||||||
|
project.project_score.update_attribute(:board_message_num, messages_count)
|
||||||
|
end
|
||||||
|
# update issues
|
||||||
|
unless project.issues.nil?
|
||||||
|
issues_count = project.issues.count
|
||||||
|
project.project_score.update_attribute(:issue_num, issues_count)
|
||||||
|
end
|
||||||
|
# update issue's journal
|
||||||
|
# if !project.project_score.nil? && !project.project_score.issue_journal_num.nil?
|
||||||
|
# project.project_score.update_attribute(:issue_journal_num, project.project_score.issue_journal_num)
|
||||||
|
# end
|
||||||
|
# update news
|
||||||
|
unless project.news.nil?
|
||||||
|
news_count = project.news.count
|
||||||
|
project.project_score.update_attribute(:news_num, news_count)
|
||||||
|
end
|
||||||
|
# update acts
|
||||||
|
acts = ForgeActivity.where("project_id = ?", project.id)
|
||||||
|
unless acts.blank?
|
||||||
|
project.project_score.update_attribute(:act_num, acts.count)
|
||||||
|
end
|
||||||
|
# update attach
|
||||||
|
unless project.attachments.nil?
|
||||||
|
attachments_count = project.attachments.count
|
||||||
|
project.project_score.update_attribute(:attach_num, attachments_count)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def down
|
||||||
|
end
|
||||||
|
end
|
2021
db/schema.rb
2021
db/schema.rb
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue