socialforge/db/migrate/20161011012114_add_root_id.rb

74 lines
2.1 KiB
Ruby

class AddRootId < ActiveRecord::Migration
def change
add_column :messages, :root_id, :integer, :default => nil
add_column :journals_for_messages, :root_id, :integer, :default => nil
add_column :blog_comments, :root_id, :integer, :default => nil
add_column :org_document_comments, :root_id, :integer, :default => nil
add_index :messages, :root_id
add_index :journals_for_messages,:root_id
add_index :blog_comments,:root_id
add_index :org_document_comments,:root_id
def get_base_parent comment
comm = comment
while comm.parent
comm = comm.parent
end
comm
end
count = Message.all.count / 30 + 2
transaction do
for i in 1 ... count do i
Message.page(i).per(30).each do |message|
unless message.parent.nil?
parent = get_base_parent message
message.update_column('root_id', parent.id)
end
end
end
end
count = JournalsForMessage.all.count / 30 + 2
transaction do
for i in 1 ... count do i
JournalsForMessage.page(i).per(30).each do |message|
if message.jour_type == "HomeworkCommon" || message.jour_type == "Syllabus"
message.update_column('root_id', message.jour_id)
else
unless message.parent.nil?
parent = get_base_parent message
message.update_column('root_id', parent.id)
end
end
end
end
end
count = BlogComment.all.count / 30 + 2
transaction do
for i in 1 ... count do i
BlogComment.page(i).per(30).each do |message|
unless message.parent.nil?
parent = get_base_parent message
message.update_column('root_id', parent.id)
end
end
end
end
count = OrgDocumentComment.all.count / 30 + 2
transaction do
for i in 1 ... count do i
OrgDocumentComment.page(i).per(30).each do |message|
unless message.parent.nil?
parent = get_base_parent message
message.update_column('root_id', parent.id)
end
end
end
end
end
end