Provided by: liborlite-mirror-perl_1.24-1_all bug

NAME

       ORLite::Mirror - Extend ORLite to support remote SQLite databases

SYNOPSIS

         # Regular ORLite on a readonly SQLite database
         use ORLite 'path/mydb.sqlite';

         # The equivalent for a remote (optionally compressed) SQLite database
         use ORLite::Mirror 'http://myserver/path/mydb.sqlite.gz';

         # All available additional options specified
         use ORLite::Mirror {
             url           => 'http://myserver/path/mydb.sqlite.gz',
             maxage        => 3600,
             show_progress => 1,
             env_proxy     => 1,
             prune         => 1,
             index         => [
                 'table1.column1',
                 'table1.column2',
             ],
         };

DESCRIPTION

       ORLite provides a readonly ORM API when it loads a readonly SQLite database from your
       local system.

       By combining this capability with LWP, ORLite::Mirror goes one step better and allows you
       to load a SQLite database from any arbitrary URI in readonly form as well.

       As demonstrated in the synopsis above, you using ORLite::Mirror in the same way, but
       provide a URL instead of a file name.

       If the URL explicitly ends with a '.gz' or '.bz2' then ORLite::Mirror will decompress the
       file before loading it.

OPTIONS

       ORLite::Mirror adds an extensive set of options to those provided by the underlying ORLite
       library.

   url
       The compulsory "url" parameter should be a string containing the remote location of the
       SQLite database we will be mirroring.

       ORLite::Mirror supports downloading the database compressed, and then transparently
       decompressing the file locally. Compression support is controlled by the extension on the
       remote database.

       The extensions ".gz" (for gunzip) and ".bz2" (for bunzip2) are currently supported.

   maxage
       The optional "maxage" parameter controls how often ORLite::Mirror should check the remote
       server to see if the data has been updated.

       This allows programs using the database to start quickly the majority of the time, but
       continue to receive automatic updates periodically.

       The value is the number of integer seconds we should avoid checking the remote server for.
       The default is 86400 seconds (one 24 hour day).

   show_progress
       The optional "show_progress" parameter will be passed through to the underlying
       LWP::UserAgent that will fetch the remote database file.

       When set to true, it causes a progress bar to be displayed on the terminal as the database
       file is downloaded.

   env_proxy
       The optional "env_proxy" parameter will be passed through to the underlying LWP::UserAgent
       that will fetch the remote database file.

       When set to true, it causes LWP::UserAgent to read the location of a proxy server from the
       environment.

   prune
       The optional "prune" parameter should be used when the surrounding program wants to avoid
       leaving files on the host system.

       It causes any files or directories created during the operation of ORLite::Mirror to be
       deleted on program exit at "END"-time.

   index
       One challenge when distributing SQLite database is the quantity of data store on disk to
       support the indexes on your database.

       For a moderately indexed database where all primary and foreign key columns have indexes,
       the amount of data in the indexes can be nearly as large as the data stored for the tables
       themselves.

       Because each user of the database module will be interested in different things, the
       indexes that the original creator chooses to place on the database may not even be used at
       all and other valuable indexes may not exist at all.

       To allow sufficiently flexibility, we recommend that SQLite database be distributed
       without any indexes. This greatly reduces the file size and download time for the database
       file.

       The optional "index" parameter should then be used by each different consumer of that
       module to index just the columns that are of specific interest and will be used in the
       queries that will be run on the database.

       The value should be set to an "ARRAY" reference containing a list of column names in
       "tablename.columnname" form.

         index => [
             'table1.column1',
             'table1.column2',
         ],

SUPPORT

       Bugs should be reported via the CPAN bug tracker at

       <http://rt.cpan.org/NoAuth/ReportBug.html?Queue=ORLite-Mirror>

       For other issues, contact the author.

AUTHOR

       Adam Kennedy <adamk@cpan.org>

COPYRIGHT

       Copyright 2008 - 2012 Adam Kennedy.

       This program is free software; you can redistribute it and/or modify it under the same
       terms as Perl itself.

       The full text of the license can be found in the LICENSE file included with this module.