From 53f063aa5ac44eab3fbbd54fb95c8085c7986eac Mon Sep 17 00:00:00 2001 From: Damian Smedley <ds5@sanger.ac.uk> Date: Mon, 5 Feb 2007 15:30:55 +0000 Subject: [PATCH] changed so can run on all core databases etc --- misc-scripts/meta_coord/update_meta_coord.pl | 57 ++++++++++++-------- 1 file changed, 34 insertions(+), 23 deletions(-) diff --git a/misc-scripts/meta_coord/update_meta_coord.pl b/misc-scripts/meta_coord/update_meta_coord.pl index 1f88488c21..879ea1f267 100755 --- a/misc-scripts/meta_coord/update_meta_coord.pl +++ b/misc-scripts/meta_coord/update_meta_coord.pl @@ -5,9 +5,9 @@ use Bio::EnsEMBL::DBSQL::DBConnection; use Getopt::Long; my $help = 0; -my ($host, $port, $user, $pass, $dbname); +my ($host, $port, $user, $pass, $dbpattern); -my $usage = "\n$0 --host ecs2 --port 3364 --user ensadmin --pass ensembl --dbname homo_sapiens_core_27_35a +my $usage = "\n$0 --host ecs2 --port 3364 --user ensadmin --pass ensembl --dbpattern core [--help] displays this menu. @@ -39,7 +39,7 @@ GetOptions('help' => \$help, 'port=i' => \$port, 'user=s' => \$user, 'pass=s' => \$pass, - 'dbname=s' => \$dbname); + 'dbpattern=s' => \$dbpattern); #print "help: $help argv:" . scalar(@ARGV) . "$host $port $user $pass $dbname\n"; @@ -48,13 +48,24 @@ GetOptions('help' => \$help, # exit 0; #} -my $dbc = new Bio::EnsEMBL::DBSQL::DBConnection(-host => $host, +my $dsn = "DBI:mysql:host=$host"; +$dsn .= ";port=$port" if ($port); + +my $db = DBI->connect( $dsn, $user, $pass ); + +my @dbnames = map {$_->[0] } @{$db->selectall_arrayref("show databases")}; + +for my $dbname (@dbnames) { + + next if ($dbname !~ /$dbpattern/); + + my $dbc = new Bio::EnsEMBL::DBSQL::DBConnection(-host => $host, -port => $port, -user => $user, -pass => $pass, -dbname => $dbname); -my @table_names = qw( + my @table_names = qw( assembly_exception gene exon @@ -76,27 +87,27 @@ my @table_names = qw( transcript ); -unless (system("mysql -h$host -P$port -u$user -p$pass -N -e 'select * from meta_coord' $dbname > $dbname.meta_coord.backup") ==0) { - print STDERR "Can't dump the original meta_coord for back up\n"; - exit 1; -} else { - print STDERR "original meta_coord table backed up in $dbname.meta_coord.backup\n"; -} + unless (system("mysql -h$host -P$port -u$user -p$pass -N -e 'select * from meta_coord' $dbname > $dbname.meta_coord.backup") ==0) { + print STDERR "Can't dump the original meta_coord for back up\n"; + exit 1; + } else { + print STDERR "original meta_coord table backed up in $dbname.meta_coord.backup\n"; + } -foreach my $table_name (@table_names) { - print STDERR "Updating $table_name table entries..."; - my $sql = "delete from meta_coord where table_name = ? "; - my $sth = $dbc->prepare($sql); - $sth->execute($table_name); - $sth->finish; + foreach my $table_name (@table_names) { + print STDERR "Updating $table_name table entries..."; + my $sql = "delete from meta_coord where table_name = ? "; + my $sth = $dbc->prepare($sql); + $sth->execute($table_name); + $sth->finish; - $sql = "insert into meta_coord ". + $sql = "insert into meta_coord ". "select '$table_name',s.coord_system_id, max(t.seq_region_end-t.seq_region_start+1) ". "from $table_name t, seq_region s ". "where t.seq_region_id=s.seq_region_id group by s.coord_system_id"; - $sth = $dbc->prepare($sql); - $sth->execute; - $sth->finish; - print STDERR "Done\n"; + $sth = $dbc->prepare($sql); + $sth->execute; + $sth->finish; + print STDERR "Done\n"; + } } - -- GitLab