Data::Record::Serialize::Encode::dbi Data::Record::Serialize::Encode::dbi writes a record to a database using DBI. It performs both the Data::Record::Serialize::Role::Encode and Data::Record::Serialize::Role::Sink roles. You cannot construct this directly. You must use "new" in Data::Record::Serialize. Types Field types are recognized and converted to SQL types via the following map: S => 'text' N => 'real' I => 'integer' For Postgres, "B => 'boolean'". For other databases, "B => 'integer'". This encoder handles transformation of the input "truthy" Boolean value into a form appropriate for the database to ingest. NULL values By default numeric fields are set to "NULL" if they are empty. This can be changed by setting the "nullify" attribute. Performance Records are by default written to the database in batches (see the "batch" attribute) to improve performance. Each batch is performed as a single transaction. If there is an error during the transaction, record insertions during the transaction are *not* rolled back. Errors Transaction errors result in an exception in the "Data::Record::Serialize::Error::Encode::dbi::insert" class. See Data::Record::Serialize::Error for more information on exception objects. Compatibility This module has been tested on SQLite, PostgreSQL, and Sybase. See t/encoders/dbi.t for more information on how to test against non-SQLite databases. SQL::Translator is used to generate the DDL; unfortunately its Sybase DDL producer has some issues/bugs and is temporarily monkey-patched to work around them. INSTALLATION This is a Perl module distribution. It should be installed with whichever tool you use to manage your installation of Perl, e.g. any of cpanm . cpan . cpanp -i . Consult http://www.cpan.org/modules/INSTALL.html for further instruction. Should you wish to install this module manually, the procedure is perl Build.PL ./Build ./Build test ./Build install COPYRIGHT AND LICENSE This software is Copyright (c) 2017 by Smithsonian Astrophysical Observatory. This is free software, licensed under: The GNU General Public License, Version 3, June 2007