Enhance usage example? Temp tables
nfedyashev opened this issue · 1 comments
I'm using postgres-copy for importing CSV files in tempory tables that are later used for parsing line by line(record by record).
That's why such ActiveRecord models & tables could not be created upfront.
I believe that might be not such a rare use case.
That's the workaround that I'm currently using:
table_name = "upload_#{SecureRandom.hex}"
ActiveRecord::Base.connection.create_table table_name, id: :integer do |t|
columns.each do |column_name|
t.string column_name.to_sym
end
end
klass = Class.new(ActiveRecord::Base) do
acts_as_copy_target
self.table_name = table_name
end
klass.copy_from file_path.to_s, columns: columns
Please let me know if you may need this as an example in README, so I'll prepare a PR.
HTH
Actually this brings to my attention a problem with the interface defined by this gem, a simpler class that takes a database connection and the copy parameters would be a more solid base to build the ActiveRecord behaviour upon.
The PR withe example in the README is a good idea. But I'm also keeping this open to improve on the interface exposed by the gem.