Index: trunk/ippToPsps/scripts/createDb.pl
===================================================================
--- trunk/ippToPsps/scripts/createDb.pl	(revision 28206)
+++ trunk/ippToPsps/scripts/createDb.pl	(revision 28528)
@@ -25,12 +25,23 @@
 print "* Connected to '$dbname' on 'dbserver'\n";
 
-if (!doesTableExist("revision")) {
-    createRevision_1();
+my $currentRevision = -1;
+
+my $latestRevision = 3;
+    print "* Latest revision = $latestRevision\n";
+
+while ($currentRevision != $latestRevision) {
+
+    $currentRevision = getRevision();
+    print "* Current revision = $currentRevision\n";
+
+    if ($currentRevision == 0) {createRevision_1();}
+    elsif ($currentRevision == 1) {createRevision_2();}
+    elsif ($currentRevision == 2) {createRevision_3();}
+
 }
-
-
 $db->disconnect();
 print "* Disconnected from '$dbname' on 'dbserver'\n";
 print "*\n*******************************************************************************\n\n";
+
 
 #######################################################################################
@@ -50,9 +61,4 @@
             primary key (revision)
             );
-SQL
-        $query->execute;
-
-    $query = $db->prepare(<<SQL);
-    INSERT INTO revision (revision) VALUES (1);
 SQL
         $query->execute;
@@ -77,4 +83,59 @@
     $query->execute;
 
+setRevision(1);
+
+}
+
+#######################################################################################
+# 
+# Create revision 2 of the database 
+#
+#######################################################################################
+sub createRevision_2 {
+
+    print "* Creating revision 2 of '$dbname'\n";
+
+        my $query = $db->prepare(<<SQL);
+
+        ALTER TABLE batches 
+        ADD COLUMN merged TINYINT DEFAULT 0
+SQL
+    $query->execute;
+
+setRevision(2);
+}
+
+#######################################################################################
+# 
+# Create revision 3 of the database 
+#
+#######################################################################################
+sub createRevision_3 {
+
+    print "* Creating revision 3 of '$dbname'\n";
+
+        my $query = $db->prepare(<<SQL);
+
+        ALTER TABLE batches 
+        ADD COLUMN total_detections BIGINT DEFAULT 0
+SQL
+    $query->execute;
+
+setRevision(3);
+}
+
+
+#######################################################################################
+# 
+# Sets current revision of ippToPsps database
+#
+#######################################################################################
+sub setRevision {
+    my ($revision) = @_;
+
+    my $query = $db->prepare(<<SQL);
+    INSERT INTO revision (revision) VALUES ($revision);
+SQL
+        $query->execute;
 }
 
@@ -82,4 +143,25 @@
 # 
 # Gets current revision of ippToPsps database
+#
+#######################################################################################
+sub getRevision {
+
+    if (!doesTableExist("revision")) {return 0;}
+
+    my $query = $db->prepare(<<SQL);
+
+    SELECT revision
+        FROM revision
+        ORDER BY revision DESC LIMIT 1;
+SQL
+   $query->execute;
+   my @row = $query->fetchrow_array();
+
+   return $row[0];
+}
+
+#######################################################################################
+# 
+# Checks whether a certain table exists 
 #
 #######################################################################################
@@ -99,6 +181,4 @@
     my $count = $query->fetchrow_array();
 
-    printf( "* Table '$table' %s\n", $count ? "exists" : "does not exist");
-
     return $count;
 }
