我打算在几个字段上索引我的1亿行(ruby on rails)数据库,问题是我无法知道这些迁移的进展。
通常情况下,如果我正在运行手动数据迁移,我会做一个基本的i+=1;print("#{i},")
来跟踪它的距离,并确保它仍在工作。
有没有人知道我的索引迁移有没有办法做这样的事情,所以我可以监控它的进展?
答案 0 :(得分:1)
您可以在一个进程中分叉并创建索引,同时在另一个进程中输出进度信息。它看起来像这样:
pid = fork {
# do index creation here
}
child_pid = nil
begin
child_pid = Process.waitpid(pid, Process::WNOHANG)
# output progress info here
end while child_pid.nil?