NAME
Beam::Make::DBI::CSV - A Beam::Make recipe
VERSION
version 0.002
SYNOPSIS
### container.yml
# A Beam::Wire container to configure a database connection to use
sqlite:
$class: DBI
$method: connect
$args:
- dbi:SQLite:conversion.db
### Beamfile
load_data:
$class: Beam::Wire::DBI
dbh: { $ref: 'container.yml:sqlite' }
table: cpan_recent
file: cpan_recent.csv
DESCRIPTION
This Beam::Make recipe class loads data into a database from a CSV file.
ATTRIBUTES
dbh
Required. The DBI database handle to use. Can be a reference to a service in a Beam::Wire container using { $ref: "<container>:<service>" }
.
table
Required. The table to load data to.
file
Required. The path to the CSV file to load.
csv
The configured Text::CSV object to use. Can be a reference to a service in a Beam::Wire container using { $ref: "<container>:<service>" }
. Defaults to a new, blank Text::CSV
object.
### container.yml
# Configure a CSV parser for pipe-separated values
psv:
$class: Text::CSV
$args:
- binary: 1
sep_char: '|'
quote_char: ~
escape_char: ~
### Beamfile
# Load a PSV into the database
load_psv:
$class: Beam::Make::DBI::CSV
dbh: { $ref: 'container.yml:sqlite' }
csv: { $ref: 'container.yml:psv' }
file: accounts.psv
table: accounts
SEE ALSO
AUTHOR
Doug Bell <preaction@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2020 by Doug Bell.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.