See Files on Github
country-codes.csv
create_country_table.exs
This post expands on this article from 'Experimenting with Code' to only import a subset of csv columns into Postgres using Ecto.
In this case, we are only concerned with the code
and name
columns from country-codes.csv
. This example uses File.stream() and CSV.decode!() to get just the two columns and pass it to the COPY command.
file_path
|> File.stream!()
|> CSV.decode!(headers: true)
|> Stream.map(fn row ->
[
row["code"],
row["name"]
]
end)
|> CSV.encode()
|> Enum.into(stream)
Top comments (0)