0

我在开发中切换到 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”列。任何想法为什么会发生这种情况?

4

2 回答 2

1

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

于 2013-03-01T17:00:23.887 回答
0

你也可以试试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

我的测试表明它比activerecord-import. 由于它是“更新插入”,因此如果该过程被中断并且您从头开始重新开始,通常是可以的。

于 2013-03-01T17:42:43.977 回答