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