#!/usr/bin/perl -w

sub BEGIN {
$ENV{DBI_AUTOPROXY}='dbi:Gofer:transport=stream;url=ssh:dpavlin@koha.ffzg.hr';
}

use strict;
use DBI;
use MongoDB;
use Data::Dump qw/dump/;

$|++;

my $debug = @ARGV ? 1 : 0;

our ( $dbi, $user, $password ) = ( "DBI:mysql:database=test" );
our ( $database, $collection ) = ( 'test', 'test' );
our ( $table, $pk ) = ( 'items', 'id' );

require 'config.pl';

warn "# $dbi $user -> $database $collection\n";

my $conn = MongoDB::Connection->new;
my $db   = $conn->get_database( $database );
my $coll = $db->get_collection( $collection );
my $dbh  = DBI->connect($dbi,$user,$password, {
	RaiseError => 1,
#	mysql_enable_utf8 => 1,
});

$db->drop if $debug;

# db.items.find().sort({_id:-1}).limit(1);
my $last = $coll->query()->sort({ '_id' => -1 })->limit(1)->next;
warn dump( $last );
my $last_id = $last->{_id} || 0;

print "Fetching items from $dbi _id > $last_id\n";

my $sth = $dbh->prepare(qq{
	select
		$pk as _id,
		$table.*
	from $table
	where $pk > ?
	order by $pk asc
	limit 100000
});

$sth->execute( $last_id );

warn dump( $sth->{NAME} );

print "found ",$sth->rows," items to process...\n";

while (my $row = $sth->fetchrow_hashref() ) {

	map { $row->{$_} * 1 } grep { defined $row->{$_} && $row->{$_} =~ /^\d+$/ } keys %$row;
	$coll->insert( $row );
}

