我试图通过在rails迁移期间解释一些txt文件来运行PG::Connection or a ActiveRecord::Base.connection
。似乎迁移耗尽内存非常快。比我在ruby脚本中运行PG::Connection
快得多。造成这种情况的原因是什么?
def import_movies(db_conn)
title_re = /^(#{$title}) \s+ \([0-9]+\) \s+ ([0-9]+)$/ix
i = 0
db_conn.transaction do |conn|
# ActiveRecord::Base.transaction do # tried this also, slow
stmt = prepare2(conn, "INSERT INTO movies (title, year) VALUES (?, ?);")
File.new("#{DUMP_PATH}/movies.list").each_line do |line|
print "." if (i = i + 1) % 5000 == 0; STDOUT.flush
if match = title_re.match(line)
stmt.execute!(match[1], match[2].to_i)
end
end
end
puts
end