如何使用动态生成的sql执行rails迁移?

时间:2017-10-03 14:56:25

标签: ruby-on-rails postgresql rails-migrations pg

我试图通过在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

0 个答案:

没有答案