问题标签 [activerecord-import]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
648 浏览

ruby-on-rails - 通过 activerecord-import gem 导入后,所有 Rails 活动记录外键都为零

Ruby 2.3.0、Rails 4.2.4、PostgreSQL 9.5

更新:在下面添加了 activerecord-import 代码。

有谁知道如何使这些关联保持不变,以便可以在另一个视图中引用模型的表属性?类似于另一个问答(Rails has_many 通过使用 source 和 source_type 对多种类型进行别名),其中我有投资者、公司和交易。

我已经尝试过类似下面的关联 ( has_many ... through ...),但我无法让 ActiveRecord 识别 3 个模型和表之间的连接。播种数据库:

数据进入这些表的方式是通过具有 3 列的 csv 文件。我使用 roo-xls 将每个提取到一个数组数组中。

我的基于activerecord-import gem的代码(每个 *_val 是一个由 1000 个数组组成的数组):

导入有效,但是当我检查transactions表格时,执行 activerecord-import 后company_id 和investor_id.import都为零。我当然希望它们包含用于companyinvestor模型记录的外键。

我的模型如下。

交易迁移(其他为简洁起见)

我的schema,我在其中添加了对belongs_to( transactions) 表的引用。

0 投票
0 回答
770 浏览

ruby-on-rails - NoMethodError:未定义的方法 `sql_for_on_duplicate_key_update' 用于#

我有一个 Rails 应用程序,最近我将数据库从 MySql 更改为 PostgreSql,从那时起 active-recordsimport方法:on_duplicate_key_update抛出错误。

显示的错误是,

我在跑:

0 投票
1 回答
58 浏览

ruby-on-rails - 如何使用 ruby​​ 脚本编辑 sql 数据库中现有的 activerecord 对象?

如何使用脚本在外部编辑 activerecord 对象?我目前正在使用activerecord-importgem 将对象插入数据库。是否可以使用此 gem 或使用其他工具或 gem 编辑现有记录?

0 投票
2 回答
2137 浏览

ruby-on-rails - 具有非唯一列的 Activerecord-import upsert 到 postgres

我正在尝试使用 activerecord-import 导入数据,但遇到了问题。如果该行已经存在,则需要对其进行更新,否则需要创建该行。表中的唯一行由两列的组合定义,其中每个列的值在表中可能不是唯一的。由于列不是唯一列,我将如何使用 on_duplicate_key_update 的冲突目标。

现在了解详情。我有一个名为 Order 的模型,下面是 Order 模型中列的简化版本。

数据库中的唯一行由 order_number 和 sku_number 的组合标识。id 列是自动递增的。通常,如果我有一个唯一列作为标识符,我可以执行以下操作。因此,在下面的示例中,假设 id 列是唯一标识符,我将使用 id 列作为冲突目标。

这将更新数量,因为订单已经存在。

但我需要的是类似

order_number 和 sku_number 将唯一标识冲突行。

但这失败了,因为 Postgres 期望冲突目标的唯一列。

有没有办法使用非唯一列(即 order_number 和 sku_number)调用 on_duplicate_key_update?

任何帮助将不胜感激。

0 投票
1 回答
583 浏览

ruby-on-rails - 在 PostGres 中插入 NULL 值时,如何自动生成我的 ID?

我正在使用 PostGres 9.5。我在表中设置了以下内容,希望能够自动生成 ID……</p>

但是当我尝试运行批量插入语句时,其内容看起来像

我收到一个错误

SQL 是由 Rails 4.2.7 activerecord-import gem 自动生成的,我正在调用它

如果没有提供 ID,如何为我自动生成 ID?

0 投票
1 回答
519 浏览

ruby-on-rails - Rails 友好 ID:在 model.new 或 model.import 上未生成 slug

嗨,我正在使用friendly_id gem,

这里 Student.create 根据需要生成一个 slug 作为名称。

但就我而言,我正在使用“新”方法创建学生数组并使用活动记录导入保存到数据库

在“新”上,它不会创建 slug,也不会在导入时创建。

如何在导入时生成 slug?提前致谢

0 投票
3 回答
2643 浏览

ruby-on-rails - CSV 解析占用太多内存

我正在尝试读取一个 5MM 行文件,现在它超出了我在 heroku 上的大量内存使用量。我的方法有点快~200 次插入/秒。我相信它在导入时崩溃了。所以我的计划是分批导入 1,000 或 10,000。我的问题是我怎么知道我在文件的末尾,ruby 有一个.eof方法但它是一个File方法,我不知道如何在我的循环中调用它

0 投票
2 回答
1948 浏览

ruby-on-rails - 红宝石 CSV | 如何在阅读 CSV 时跳过几列?

我正在使用Active record Import gem将数据从 CSV 文件批量导入数据库。但我想在导入时跳过几个 CSV 列。

例如,我的 xaa.csv 具有名称、作者、作者 ID、评级等标题。导入时,我想跳过“author_id”列值并导入所有其他列。

0 投票
0 回答
465 浏览

ruby-on-rails - activerecord-import gem: has_many through issue

activerecord-import gem的帮助下,我试图has_many through在一个查询中保存带有孩子的记录列表。

我的模型:

我的保存代码:

但我得到一个错误NoMethodError: undefined method modification_id=' for #<Modification:0x00000006eb01d0>

0 投票
1 回答
537 浏览

ruby-on-rails - 我应该允许 activerecord-import 运行多长时间?

导轨版本: 4.2.7

红宝石版本: 2.3.3

我正在运行一个 rake 任务,将数百万个对象从 CSV 和 JSON 文件格式迁移到我的 postgres 数据库中。

我试图利用activerecord-import它来加快将对象写入数据库的速度。

尽可能简化代码,前半部分处理对象类型一(来自一种数据类型),后半部分处理对象类型二。

第一个对象类型像这样迭代(为问题简化):

这在大约 250,000 个对象上运行,并且编写时没有任何问题,我在控制台中进行了检查,并且对象已成功写入。

然而,对象类型 2 有一些额外的对象,每个对象的大小和设计都与对象类型 1 大致相同。

其中大约有 4,040,000 个。

我应该等待多长时间ObjectTwo.import才能运行?我们现在进入几个小时。

或者,从调试的角度来看(因为我真的不想重新运行这个 rake 任务,除非我绝对必须这样做),哪些脚本或策略对于查看当前是否ObjectTwo.import真的运行(即使它一直在运行)或者如果任务挂了?

ObjectTwo我检查了 rails 控制台,我们在数据库中的 's数量似乎和以前一样。


我唯一的另一个想法是,由于我在运行之前没有打印到控制台#import(即喜欢puts "Now starting import!"),所以我没有 100% 的证据证明在数组中构建的对象已经完成。