Module: E621::CsvImportable
- Extended by:
- T::Sig
- Included in:
- Artist, BulkUpdateRequest, Pool, Post, PostReplacement, PostVersion, Tag, TagAlias, TagImplication, WikiPage
- Defined in:
- lib/e621/csv_importable.rb
Instance Method Summary collapse
Instance Method Details
#import_from_csv(csv_path) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/e621/csv_importable.rb', line 9 def import_from_csv(csv_path) model = T.unsafe(self) headers = File.open(csv_path, "rb", &:readline).chomp columns = headers.split(",").map { |h| model.connection.quote_column_name(h.strip) }.join(", ") raw = model.connection.raw_connection raw.copy_data("COPY #{model.quoted_table_name} (#{columns}) FROM STDIN WITH (FORMAT CSV, HEADER TRUE)") do File.open(csv_path, "rb") do |f| raw.put_copy_data(f.read(65_536)) until f.eof? end end end |