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