27 lines
572 B
Ruby
27 lines
572 B
Ruby
|
class AddRootIdToMemos < ActiveRecord::Migration
|
||
|
def change
|
||
|
add_column :memos, :root_id, :integer
|
||
|
add_index :memos, :root_id
|
||
|
|
||
|
def get_base_parent comment
|
||
|
comm = comment
|
||
|
while comm.parent
|
||
|
comm = comm.parent
|
||
|
end
|
||
|
comm
|
||
|
end
|
||
|
|
||
|
count = Memo.all.count / 30 + 2
|
||
|
transaction do
|
||
|
for i in 1 ... count do i
|
||
|
Memo.page(i).per(30).each do |memo|
|
||
|
unless memo.parent.nil?
|
||
|
parent = get_base_parent memo
|
||
|
memo.update_column('root_id', parent.id)
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|