Mercurial > hg > LGDataverses
comparison scripts/migration/versions_source_ @ 10:a50cf11e5178
Rewrite LGDataverse completely upgrading to dataverse4.0
| author | Zoe Hong <zhong@mpiwg-berlin.mpg.de> |
|---|---|
| date | Tue, 08 Sep 2015 17:00:21 +0200 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| 9:5926d6419569 | 10:a50cf11e5178 |
|---|---|
| 1 #!/usr/bin/perl | |
| 2 | |
| 3 # TODO: | |
| 4 # the script still has the namespaces "1902.1" and "10.7910" hard-coded, | |
| 5 # to identifies the "local" studies. | |
| 6 | |
| 7 my $url = shift @ARGV; | |
| 8 | |
| 9 use DBI; | |
| 10 | |
| 11 my $username = "xxxxx"; | |
| 12 my $password = 'xxxxx'; | |
| 13 my $database = "xxxxx"; | |
| 14 | |
| 15 my $dbh = DBI->connect("DBI:Pg:dbname=$database;host=$host",$username,$password); | |
| 16 | |
| 17 unless ( -d "ddi" ) | |
| 18 { | |
| 19 mkdir "ddi"; | |
| 20 } | |
| 21 | |
| 22 my $sth; | |
| 23 | |
| 24 $sth = $dbh->prepare(qq {SELECT s.id, s.authority, s.studyid, v.alias FROM study s, vdc v WHERE s.owner_id = v.id}); | |
| 25 | |
| 26 $sth->execute(); | |
| 27 | |
| 28 my $sid; | |
| 29 | |
| 30 $studycounter = 0; | |
| 31 $extraversioncounter = 0; | |
| 32 $versioncounter = 0; | |
| 33 | |
| 34 while ( @foo = $sth->fetchrow() ) | |
| 35 { | |
| 36 $sid = $foo[0]; | |
| 37 $authority = $foo[1]; | |
| 38 $studyid = $foo[2]; | |
| 39 $dvalias = $foo[3]; | |
| 40 | |
| 41 unless ($authority eq "1902.1" || $authority =~/^10\.7910/ ) { | |
| 42 next; | |
| 43 } | |
| 44 | |
| 45 unless ( -d "ddi/$dvalias" ) | |
| 46 { | |
| 47 mkdir "ddi/$dvalias"; | |
| 48 } | |
| 49 | |
| 50 my $sth1; | |
| 51 | |
| 52 $sth1 = $dbh->prepare(qq {SELECT versionnumber,versionstate FROM studyversion v WHERE study_id=$sid}); | |
| 53 $sth1->execute(); | |
| 54 | |
| 55 my $vn; | |
| 56 | |
| 57 $localcounter = 0; | |
| 58 | |
| 59 while ( @bar = $sth1->fetchrow() ) | |
| 60 { | |
| 61 $vn = $bar[0]; | |
| 62 $vstate = $bar[1]; | |
| 63 | |
| 64 if ($vstate eq "RELEASED") | |
| 65 { | |
| 66 print $dvalias . "\t" . $sid . "\t" . $authority . "/" . $studyid . "/export_ddi.xml\n"; | |
| 67 } | |
| 68 else | |
| 69 { | |
| 70 print STDERR "executing: wget -O ddi/" . $dvalias . "/" . $sid . "-" . $vn . ".xml '" . $url . "?studyId=" . $sid . "&versionNumber=" . $vn . "'\n"; | |
| 71 system "wget -O ddi/" . $dvalias . "/" . $sid . "-" . $vn . ".xml '" . $url . "?studyId=" . $sid . "&versionNumber=" . $vn . "'\n"; | |
| 72 $versioncounter++; | |
| 73 $localcounter++; | |
| 74 } | |
| 75 } | |
| 76 | |
| 77 $sth1->finish; | |
| 78 $studycounter++; | |
| 79 $extraversioncounter++ if $localcounter; | |
| 80 | |
| 81 unless ($studycounter % 1000) | |
| 82 { | |
| 83 print STDERR "\n" . $studycounter . " studies processed.\n"; | |
| 84 print STDERR $extraversioncounter . " had versions other than released;\n"; | |
| 85 print STDERR "Total " . $versioncounter . " versions processed.\n"; | |
| 86 } | |
| 87 } | |
| 88 | |
| 89 $sth->finish; | |
| 90 | |
| 91 $dbh->disconnect; | |
| 92 | |
| 93 exit 0; | |
| 94 | |
| 95 | |
| 96 | |
| 97 | |
| 98 |
