From 4bf66dd936df8be8b08f0969d01f46633352783b Mon Sep 17 00:00:00 2001 From: Gerhard Gonter <ggonter@gmail.com> Date: Fri, 4 Apr 2014 23:36:39 +0200 Subject: [PATCH] a few small repairs --- lib/Redmine/DB/MySQL.pm | 29 +++++++++++++++++++---------- t_sync.pl | 18 +++++++++++++----- 2 files changed, 32 insertions(+), 15 deletions(-) diff --git a/lib/Redmine/DB/MySQL.pm b/lib/Redmine/DB/MySQL.pm index fa570f8..7154158 100644 --- a/lib/Redmine/DB/MySQL.pm +++ b/lib/Redmine/DB/MySQL.pm @@ -6,6 +6,7 @@ use parent 'Redmine::DB'; # use Redmine::DB::Project; +my $show_query= 0; my $show_fetched= 0; sub connect @@ -50,14 +51,20 @@ sub get_all_x my @v= (); if (defined ($where)) { - print "where: ", main::Dumper ($where); + print "where: ", main::Dumper ($where) if ($show_query); $ss .= ' WHERE ' . shift (@$where); @v= @$where; } - print "ss=[$ss]\n"; + + if ($show_query) + { + print "ss=[$ss]"; + print ' vars: ', join (',', @v) if (@v); + print "\n"; + } my $sth= $dbh->prepare($ss) or print $dbh->errstr; - print "sth=[$sth]\n"; + # print "sth=[$sth]\n"; $sth->execute(@v); my $t= $self->table($table); @@ -94,19 +101,20 @@ sub get_project_members =cut -sub get_members +sub pcx_members { my $self= shift; my $proj_id= shift; - my $res= $self->table('x_sync'); + my $res= $self->table('pcx'); my $proj= $self->get_all_x ('projects', [ 'id=?', $proj_id ]); my $members= $self->get_all_x ('members', [ 'project_id=?', $proj_id ]); + $res->{'project'}= $proj; $res->{'members'}= $members; - print "proj: ", main::Dumper($proj); + # print "proj: ", main::Dumper($proj); # -------------------------------------------------------------------- # check for members and users @@ -125,7 +133,7 @@ sub get_members if (@missing_users) { - print "missing users: [", join (' ', @missing_users), "]\n"; + # print "missing users: [", join (' ', @missing_users), "]\n"; my $in= 'id IN ('. join(',', map { '?' } @missing_users) . ')'; # $show_fetched= 1; $self->get_all_x ('users', [ $in, @missing_users ]), @@ -134,12 +142,12 @@ sub get_members $res; } -sub get_wiki +sub pcx_wiki { my $self= shift; my $proj_id= shift; - my $res= $self->table('x_sync'); + my $res= $self->table('pcx'); # -------------------------------------------------------------------- # check for wiki stuff @@ -159,7 +167,8 @@ sub get_wiki foreach my $wiki_id (@wiki_ids) { my $wiki_pages= $self->get_all_x ('wiki_pages', [ 'wiki_id=?', $proj_id ]); - print "wiki_id=[$wiki_id] wiki_pages: ", main::Dumper ($wiki_pages); + $res->{'wiki_pages'}->{$wiki_id}= $wiki_pages; + # print "wiki_id=[$wiki_id] wiki_pages: ", main::Dumper ($wiki_pages); } } diff --git a/t_sync.pl b/t_sync.pl index 83a84bd..1dc42f1 100755 --- a/t_sync.pl +++ b/t_sync.pl @@ -32,6 +32,8 @@ use Redmine::DB::MySQL; # yeah, this should be in a config file, but my $setup_file; + +# this structure ($setup) resembles something like a "context" my $setup= { 'src' => @@ -87,13 +89,13 @@ sub usage exit (0); } -if ($op_mode eq 'usage') { usage(); } + if ($op_mode eq 'usage') { usage(); } elsif ($op_mode eq 'prep') { my $dst= read_configs($setup, 'dst'); prepare_sync_table ($dst); } -elsif ($op_mode eq 'sdp') +elsif ($op_mode eq 'sdp') # sdp: show destination intance's projects { my $dst= read_configs($setup, 'dst'); @@ -104,14 +106,18 @@ elsif ($op_mode eq 'sync') { my $src= read_configs($setup, 'src'); my $dst= read_configs($setup, 'dst'); + # my $x_u= $src->get_all_users(); # print "setup: ", Dumper ($setup); foreach my $sp (@{$setup->{'sync_projects'}}) { + my $proj_id= $sp->{'src_proj'}; print "sp: ", Dumper ($sp); - my $sx= $src->get_project_members ($sp->{'src_proj'}); - print "sx: ", Dumper ($sx); + $src->pcx_members ($proj_id); + my $pcx= $src->pcx_wiki ($proj_id); + print "pcx: ", Dumper ($pcx); + # print "src: ", Dumper ($src); } } elsif ($op_mode eq 'diag') @@ -127,7 +133,7 @@ elsif ($op_mode eq 'diag') # print "src_usr: ", Dumper ($src_usr); # print "src: ", Dumper ($src); -# my $src_members= $src->get_project_members (170); +# my $src_members= $src->get_project_members (... some project id ...); # print "src_members: ", Dumper ($src_members); @@ -183,5 +189,7 @@ CREATE TABLE `syncs` ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; EOX + # NOTE: for some reason, this can't be sent to the database, maybe/probably I'm missing something... + print "perform this on the database\n", "--- 8< ---\n", $ss, "--- >8 ---\n"; } -- GitLab