forked from HPR/hpr-tools
		
	
		
			
				
	
	
		
			111 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Perl
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			111 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Perl
		
	
	
		
			Executable File
		
	
	
	
	
#!/usr/bin/env perl
 | 
						|
#===============================================================================
 | 
						|
#
 | 
						|
#         FILE: remodel_db_series_eps
 | 
						|
#
 | 
						|
#        USAGE: ./remodel_db_series _eps
 | 
						|
#
 | 
						|
#  DESCRIPTION: Script to perform the steps necessary to remodel the series
 | 
						|
#  		information in the hpr_hpr database. We want to have
 | 
						|
#  		a many-to-many relationship between episodes and series.
 | 
						|
#
 | 
						|
#      OPTIONS: ---
 | 
						|
# REQUIREMENTS: ---
 | 
						|
#         BUGS: ---
 | 
						|
#        NOTES: This code is extremely trivial. It could be done just as well
 | 
						|
#               with plain SQL. However, having a script will potentially
 | 
						|
#               allow other things to be done during the table load, such as
 | 
						|
#               reading other series associations from a file.
 | 
						|
#       AUTHOR: Dave Morriss (djm), Dave.Morriss@gmail.com
 | 
						|
#      VERSION: 0.0.1
 | 
						|
#      CREATED: 2015-06-26 12:30:27
 | 
						|
#     REVISION: 2015-06-26 15:28:12
 | 
						|
#
 | 
						|
#===============================================================================
 | 
						|
 | 
						|
use 5.010;
 | 
						|
use strict;
 | 
						|
use warnings;
 | 
						|
use utf8;
 | 
						|
 | 
						|
use YAML::Syck;
 | 
						|
use DBI;
 | 
						|
 | 
						|
#
 | 
						|
# Version number (manually incremented)
 | 
						|
#
 | 
						|
our $VERSION = '0.0.1';
 | 
						|
 | 
						|
#
 | 
						|
# Script and directory names
 | 
						|
#
 | 
						|
( my $PROG = $0 ) =~ s|.*/||mx;
 | 
						|
( my $DIR  = $0 ) =~ s|/?[^/]*$||mx;
 | 
						|
$DIR = '.' unless $DIR;
 | 
						|
 | 
						|
#-------------------------------------------------------------------------------
 | 
						|
# Declarations
 | 
						|
#-------------------------------------------------------------------------------
 | 
						|
#
 | 
						|
# Constants and other declarations
 | 
						|
#
 | 
						|
my $basedir    = "$ENV{HOME}/HPR/Database";
 | 
						|
my $configfile = "$basedir/.hpr_db.yml";
 | 
						|
 | 
						|
my ( $dbh, $sth1, $sth2, $sth3, $sth4, $h1, $h2, $rv );
 | 
						|
 | 
						|
#
 | 
						|
# Enable Unicode mode
 | 
						|
#
 | 
						|
binmode STDOUT, ":encoding(UTF-8)";
 | 
						|
binmode STDERR, ":encoding(UTF-8)";
 | 
						|
 | 
						|
#
 | 
						|
# Load configuration data
 | 
						|
#
 | 
						|
my %config = %{ LoadFile($configfile) };
 | 
						|
 | 
						|
#-------------------------------------------------------------------------------
 | 
						|
# Connect to the database
 | 
						|
#-------------------------------------------------------------------------------
 | 
						|
my $dbname = $config{database}->{name};
 | 
						|
my $dbuser = $config{database}->{user};
 | 
						|
my $dbpwd  = $config{database}->{password};
 | 
						|
$dbh
 | 
						|
    = DBI->connect( "dbi:mysql:dbname=$dbname", $dbuser, $dbpwd,
 | 
						|
    { AutoCommit => 1 } )
 | 
						|
    or die $DBI::errstr;
 | 
						|
 | 
						|
#
 | 
						|
# Enable client-side UTF8
 | 
						|
#
 | 
						|
$dbh->{mysql_enable_utf8} = 1;
 | 
						|
 | 
						|
#-------------------------------------------------------------------------------
 | 
						|
# Set up the SQL and query the 'eps' table since everything has a series, even
 | 
						|
# if it's 0
 | 
						|
#-------------------------------------------------------------------------------
 | 
						|
$sth1 = $dbh->prepare(q{SELECT * FROM eps ORDER BY id DESC});
 | 
						|
$sth2 = $dbh->prepare(q{INSERT INTO series_eps VALUES(?,?)});
 | 
						|
 | 
						|
$sth1->execute;
 | 
						|
if ( $dbh->err ) {
 | 
						|
    die $dbh->errstr;
 | 
						|
}
 | 
						|
 | 
						|
#-------------------------------------------------------------------------------
 | 
						|
# Walk the entire 'eps' table simply adding rows into the 'series_eps' table
 | 
						|
#-------------------------------------------------------------------------------
 | 
						|
while ( $h1 = $sth1->fetchrow_hashref ) {
 | 
						|
    $sth2->execute($h1->{series},$h1->{id});
 | 
						|
    if ( $dbh->err ) {
 | 
						|
        die $dbh->errstr;
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
exit;
 | 
						|
 | 
						|
# vim: syntax=perl:ts=8:sw=4:et:ai:tw=78:fo=tcrqn21:fdm=marker
 | 
						|
 | 
						|
 |