0
我正在为用户建立日记以跟踪他的日常支出。但是,我已经拥有了csv文件,可以将1751条记录导入到我的支出表中。我通过rake任务来完成此任务。在Heroku PG数据库中csv导入后的Rails ID序列
导入工作正常。当我在开发中(SQLite)这样做,并想通过创建操作创建新记录时,新记录保存ID 1752(这是正确的)。
如果我在生产(Heroku/PostgreSQL)中这样做,Postgres会尝试创建ID为1的新记录,很显然,这会导致错误(因为已经有第一个1751 ID)。
我的问题:我该如何解决这个问题,以便Postgres ID序列以ID 1752而不是ID 1开头(如开发中的SQLite)?
import_expenditure.rake
require 'csv'
namespace :csv do
desc "Import CSV Data from Expenditures data"
task :import_expenditures => :environment do
Expenditure.delete_all
csv_file_path = 'db/exp_data.csv'
CSV.foreach(csv_file_path) do |row|
Expenditure.create!({
:id => row[0],
:day => row[1],
:value => row[2],
:description => row[3],
:cost_type => row[4],
:category_id => row[5],
:user_id => row[6]
})
puts "Row added!"
end
end
end
的价值也许这是不是100%清楚我想要: – Oliver
你能清楚吗? –
对不起,我的评论并没有全部保存。我想通过csv导入将数据上传到数据库(1751记录初始填充数据库),然后定期使用应用程序(之后通过“新”视图中的表单添加新记录)。但是,当我第一次上传1751记录(其产生1至1751的ID)并且之后想要使用标准格式来添加记录时,PG尝试保存以ID = 1开头的这些记录(就像我没有上传任何数据之前)。在开发过程中,SQLite确实添加了以ID 1752开头的这些新记录。 – Oliver