小编Jon*_*yco的帖子

PG ::错误:另一个命令已在进行中

我有一个导入器,它接收电子邮件列表并将它们保存到postgres数据库中.以下是无表导入器类中的代码片段:

query_temporary_table = "CREATE TEMPORARY TABLE subscriber_imports (email CHARACTER VARYING(255)) ON COMMIT DROP;"
query_copy            = "COPY subscriber_imports(email) FROM STDIN WITH CSV;"
query_delete          = "DELETE FROM subscriber_imports WHERE email IN (SELECT email FROM subscribers WHERE suppressed_at IS NOT NULL OR list_id = #{list.id}) RETURNING email;"
query_insert          = "INSERT INTO subscribers(email, list_id, created_at, updated_at) SELECT email, #{list.id}, NOW(), NOW() FROM subscriber_imports RETURNING id;"

conn = ActiveRecord::Base.connection_pool.checkout
conn.transaction do
  raw = conn.raw_connection

  raw.exec(query_temporary_table)
  raw.exec(query_copy)
  CSV.read(csv.path, headers: true).each do |row|
    raw.put_copy_data row['email']+"\n" unless row.nil? …
Run Code Online (Sandbox Code Playgroud)

ruby postgresql import activerecord pg

4
推荐指数
1
解决办法
3676
查看次数

标签 统计

activerecord ×1

import ×1

pg ×1

postgresql ×1

ruby ×1