ruby on rails-Postgres在从activerecord import gem运行import时抛出错误



我在开发中切换到Postgres,现在下面的错误破坏了一个测试用例:

PG::Error: ERROR:  column "id" of relation "assets_content_nodes" does not exist
:           SELECT pg_get_serial_sequence($1, $2)

在开发和生产环境中也会发生同样的错误,但这并不是一个阻碍,也不会影响导入。assets_content_nodes是一个联接表,我不想添加"id"列。你知道为什么会发生这种情况吗?

这在activerecord import-v0.3.1中得到了修复(或者可能是早期版本,但在0.2.11及更早版本中被破坏)。您不再需要表上的id列来执行导入。

您也可以尝试Upsert

如果你进口宠物:

require 'csv'
require 'upsert'
u = Upsert.new Pet.connection, Pet.table_name
CSV.foreach('pets.csv', headers: :first_row) do |row|
  selector = { name: row['name'] }
  setter = row
  u.row selector, setter
end

我的测试显示它是20–比CCD_ 3快30%。由于这是"扰乱销售",如果流程被中断,而你只是从头开始,这通常是可以的。

相关内容

最新更新