NAME
File::Sticker::Database - write info to database
VERSION
version 1.01
SYNOPSIS
use File::Sticker::Database;
my $db = File::Sticker::Database->new(%args);
$db->write_meta(%args);
DESCRIPTION
This will write meta-data from files in various formats, and standardize it to a common nomenclature.
DEBUGGING
whoami
Used for debugging info
METHODS
new
Create a new object, setting global values for the object.
my $obj = File::Sticker::Database->new(
dbname=>$dbname,
wanted_fields=>\%wanted_fields,
field_order=>\@field_order,
primary_table=>$primary_table,
);
do_connect
Connect to the database if not connected already.
create_tables
Create the tables for the database. Give them all prefixes so that multiple setups can use the same database.
do_disconnect
Disconnect from the database
start_transaction
Start a transaction.
commit
Commit a pending transaction.
$self->commit();
get_file_id
Get the fileid of the given file
my $fileid = $self->get_file_id($filename);
get_file_meta
Get the meta-data for a single file.
$meta = $self->get_file_meta($file);
get_all_files
Return a list of all the files in the database.
my @files = @{$db->get_all_files()};
get_all_tags
Return a list of all the tags from the appropriate "deep*" table.
my @tags = @{$db->get_all_tags()};
query_by_tags
Use +tag -tag nomenclature for searching the database for matching files. If the *info table exists, uses that, otherwise, it uses the "tagfield" in the primary table.
delete_file_from_db
Delete the record for one file from the database
$db->delete_file_from_db($filename);
add_meta_to_db
Add the given file info to the database.
$db->add_meta_to_db($filename, %meta);
Helper Functions
Private interface.
_deep_table_name
Return the name of the given deep_* table.
_do_one_col_query
Do a SELECT query, and return the first column of results. This is a freeform query, so the caller must be careful to formulate it correctly.
my $results = $self->_do_one_col_query($query);
_prepare
Prepare and cache prepared queries.
my $sth = $self->_prepare($q);
BUGS
Please report any bugs or feature requests to the author.