IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 32735


Ignore:
Timestamp:
Nov 21, 2011, 2:34:49 PM (15 years ago)
Author:
rhenders
Message:

Removed revision information - will just dump a schema shape periodically instead.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ippMonitor/czartool/czartool/CzarDb.pm

    r32601 r32735  
    2828    bless $self, $class;
    2929
    30     $self->update();   
    3130    return $self;
    3231}
     
    13421341}
    13431342
    1344 ###########################################################################
    1345 #
    1346 # Update Db to newest version
    1347 #
    1348 ###########################################################################
    1349 sub update {
    1350     my ($self) = @_;
    1351 
    1352     my $currentRevision = -1;
    1353 
    1354     while (1) {
    1355 
    1356         $currentRevision = $self->getRevision();
    1357         if ($self->{_verbose}) {print "* Current Db revision = $currentRevision\n";}
    1358 
    1359         if ($currentRevision == 0) {$self->createRevision_1();}
    1360         elsif ($currentRevision == 1) {$self->createRevision_2();}
    1361         elsif ($currentRevision == 2) {$self->createRevision_3();}
    1362         elsif ($currentRevision == 3) {$self->createRevision_4();}
    1363         elsif ($currentRevision == 4) {$self->createRevision_5();}
    1364         elsif ($currentRevision == 5) {$self->createRevision_6();}
    1365         elsif ($currentRevision == 6) {$self->createRevision_7();}
    1366         elsif ($currentRevision == 7) {$self->createRevision_8();}
    1367         elsif ($currentRevision == 8) {$self->createRevision_9();}
    1368         elsif ($currentRevision == 9) {$self->createRevision_10();}
    1369         elsif ($currentRevision == 10) {$self->createRevision_11();}
    1370         elsif ($currentRevision == 11) {$self->createRevision_12();}
    1371         elsif ($currentRevision == 12) {$self->createRevision_13();}
    1372         else {last;}
    1373     }
    1374 }
    1375 
    1376 #######################################################################################
    1377 #
    1378 # Sets current revision of ippToPsps database
    1379 #
    1380 #######################################################################################
    1381 sub setRevision {
    1382     my ($self, $revision) = @_;
    1383 
    1384     my $query = $self->{_db}->prepare(<<SQL);
    1385     INSERT INTO revision (revision) VALUES ($revision);
    1386 SQL
    1387         $query->execute;
    1388 }
    1389 
    1390 #######################################################################################
    1391 #
    1392 # Gets current revision of ippToPsps database
    1393 #
    1394 #######################################################################################
    1395 sub getRevision {
    1396     my ($self) = @_;
    1397 
    1398     if (!$self->SUPER::doesTableExist("revision")) {return 0;}
    1399 
    1400     my $query = $self->{_db}->prepare(<<SQL);
    1401     SELECT revision
    1402         FROM revision
    1403         ORDER BY revision DESC LIMIT 1;
    1404 SQL
    1405 
    1406         $query->execute;
    1407     my @row = $query->fetchrow_array();
    1408 
    1409     return $row[0];
    1410 }
    1411 
    1412 #######################################################################################
    1413 #
    1414 # Create revision 1 of the database
    1415 #
    1416 #######################################################################################
    1417 sub createRevision_1 {
    1418     my ($self) = @_;
    1419 
    1420     print "* Creating revision 1 of '$self->{_dbName}'\n";
    1421 
    1422     my $query = $self->{_db}->prepare(<<SQL);
    1423     CREATE TABLE revision (
    1424             revision INT,
    1425             created TIMESTAMP DEFAULT NOW(),
    1426             primary key (revision)
    1427             );
    1428 SQL
    1429         $query->execute;
    1430 
    1431     my $stage = undef;
    1432     foreach $stage (@stages) {
    1433 
    1434         my $query = $self->{_db}->prepare(<<SQL);
    1435         CREATE TABLE $stage (
    1436                 timestamp TIMESTAMP DEFAULT NOW(),
    1437                 label VARCHAR(128) DEFAULT "NONE",
    1438                 pending BIGINT NOT NULL,
    1439                 faults BIGINT NOT NULL
    1440                 );
    1441 SQL
    1442             $query->execute;
    1443 
    1444     }
    1445 
    1446     $self->setRevision(1);
    1447 }
    1448 
    1449 #######################################################################################
    1450 #
    1451 # Create revision 2 of the database
    1452 #
    1453 #######################################################################################
    1454 sub createRevision_2 {
    1455     my ($self) = @_;
    1456 
    1457     print "* Creating revision 2 of '$self->{_dbName}'\n";
    1458 
    1459 
    1460     my $stage = undef;
    1461     foreach $stage (@stages) {
    1462 
    1463         my $query = $self->{_db}->prepare(<<SQL);
    1464         ALTER TABLE $stage
    1465             ADD COLUMN reverting TINYINT NOT NULL DEFAULT 0;
    1466 SQL
    1467             $query->execute;
    1468 
    1469     }
    1470 
    1471     $self->setRevision(2);
    1472 }
    1473 
    1474 #######################################################################################
    1475 #
    1476 # Create revision 3 of the database
    1477 #
    1478 #######################################################################################
    1479 sub createRevision_3 {
    1480     my ($self) = @_;
    1481 
    1482     print "* Creating revision 3 of '$self->{_dbName}'\n";
    1483 
    1484 
    1485     my $stage = undef;
    1486     foreach $stage (@stages) {
    1487 
    1488         my $query = $self->{_db}->prepare(<<SQL);
    1489         ALTER TABLE $stage
    1490             ADD COLUMN processed BIGINT NOT NULL DEFAULT 0;
    1491 SQL
    1492 
    1493             $query->execute;
    1494     }
    1495 
    1496     $self->setRevision(3);
    1497 }
    1498 
    1499 #######################################################################################
    1500 #
    1501 # Create revision 4 of the database
    1502 #
    1503 #######################################################################################
    1504 sub createRevision_4 {
    1505     my ($self) = @_;
    1506 
    1507     print "* Creating revision 4 of '$self->{_dbName}'\n";
    1508 
    1509     my $query = $self->{_db}->prepare(<<SQL);
    1510     CREATE TABLE current_labels (server VARCHAR(128), label VARCHAR(128));
    1511 SQL
    1512 
    1513         $query->execute;
    1514 
    1515     $self->setRevision(4);
    1516 }
    1517 
    1518 #######################################################################################
    1519 #
    1520 # Create revision 5 of the database
    1521 #
    1522 #######################################################################################
    1523 sub createRevision_5 {
    1524     my ($self) = @_;
    1525 
    1526     print "* Creating revision 5 of '$self->{_dbName}'\n";
    1527 
    1528     my $query = $self->{_db}->prepare(<<SQL);
    1529     CREATE TABLE servers (
    1530             timestamp TIMESTAMP DEFAULT NOW(),
    1531             server VARCHAR(128),
    1532             alive TINYINT, running TINYINT);
    1533 SQL
    1534 
    1535         $query->execute;
    1536 
    1537     $self->setRevision(5);
    1538 }
    1539 
    1540 #######################################################################################
    1541 #
    1542 # Create revision 6 of the database
    1543 #
    1544 #######################################################################################
    1545 sub createRevision_6 {
    1546     my ($self) = @_;
    1547 
    1548     print "* Creating revision 6 of '$self->{_dbName}'\n";
    1549 
    1550     my $stage = undef;
    1551     my $index = undef;
    1552     foreach $stage (@stages) {
    1553 
    1554         $index = $stage . "Index";
    1555         my $query = $self->{_db}->prepare(<<SQL);
    1556         CREATE INDEX $index ON $stage (timestamp, label);
    1557 SQL
    1558 
    1559             $query->execute;
    1560     }
    1561 
    1562     my $query = $self->{_db}->prepare(<<SQL);
    1563     CREATE INDEX serverIndex ON servers (timestamp, server);
    1564 SQL
    1565 
    1566         $query->execute;
    1567 
    1568 
    1569     $self->setRevision(6);
    1570 }
    1571 
    1572 #######################################################################################
    1573 #
    1574 # Create revision 7 of the database
    1575 #
    1576 #######################################################################################
    1577 sub createRevision_7 {
    1578     my ($self) = @_;
    1579 
    1580     print "* Creating revision 7 of '$self->{_dbName}'\n";
    1581 
    1582     my $query = $self->{_db}->prepare(<<SQL);
    1583     ALTER TABLE current_labels
    1584         ADD COLUMN priority INT NOT NULL DEFAULT 0;
    1585 SQL
    1586 
    1587         $query->execute;
    1588 
    1589     $self->setRevision(7);
    1590 }
    1591 
    1592 #######################################################################################
    1593 #
    1594 # Create revision 8 of the database
    1595 #
    1596 #######################################################################################
    1597 sub createRevision_8 {
    1598     my ($self) = @_;
    1599 
    1600     print "* Creating revision 8 of '$self->{_dbName}'\n";
    1601 
    1602     # drop reverting column from all stages tables
    1603     my $stage = undef;
    1604     foreach $stage (@stages) {
    1605 
    1606         my $query = $self->{_db}->prepare(<<SQL);
    1607         ALTER TABLE $stage
    1608             DROP COLUMN reverting;
    1609 SQL
    1610 
    1611             $query->execute;
    1612     }
    1613 
    1614     # create new 'revert' table
    1615     my $query = $self->{_db}->prepare(<<SQL);
    1616     CREATE TABLE reverts (
    1617             stage VARCHAR(128),
    1618             reverting TINYINT);
    1619 SQL
    1620 
    1621         $query->execute;
    1622 
    1623     # insert stages into revert table
    1624     foreach $stage (@stages) {
    1625         my $query = $self->{_db}->prepare(<<SQL);
    1626         INSERT INTO reverts
    1627             (stage, reverting)
    1628             VALUES
    1629             ('$stage', 0);
    1630 SQL
    1631             $query->execute;
    1632     }
    1633 
    1634     $self->setRevision(8);
    1635 }
    1636 
    1637 #######################################################################################
    1638 #
    1639 # Create revision 9 of the database
    1640 #
    1641 #######################################################################################
    1642 sub createRevision_9 {
    1643     my ($self) = @_;
    1644 
    1645     print "* Creating revision 9 of '$self->{_dbName}'\n";
    1646 
    1647     my $query = $self->{_db}->prepare(<<SQL);
    1648     CREATE TABLE cluster_space (
    1649             timestamp TIMESTAMP DEFAULT NOW(),
    1650             total FLOAT,
    1651             available FLOAT,
    1652             used FLOAT,
    1653             hostsOver98 SMALLINT);
    1654 SQL
    1655 
    1656         $query->execute;
    1657     $query = $self->{_db}->prepare(<<SQL);
    1658     CREATE TABLE hosts (
    1659             host VARCHAR(128),
    1660             total FLOAT,
    1661             available FLOAT,
    1662             used FLOAT);
    1663 SQL
    1664 
    1665         $query->execute;
    1666 
    1667     $query = $self->{_db}->prepare(<<SQL);
    1668     CREATE INDEX clusterSpaceIndex ON cluster_space (timestamp);
    1669 SQL
    1670 
    1671         $query->execute;
    1672 
    1673     $self->setRevision(9);
    1674 }
    1675 
    1676 #######################################################################################
    1677 #
    1678 # Create revision 10 of the database
    1679 #
    1680 #######################################################################################
    1681 sub createRevision_10 {
    1682     my ($self) = @_;
    1683 
    1684     print "* Creating revision 10 of '$self->{_dbName}'\n";
    1685 
    1686     my $query = $self->{_db}->prepare(<<SQL);
    1687     ALTER TABLE hosts
    1688         ADD COLUMN writable TINYINT NOT NULL DEFAULT 0,
    1689             ADD COLUMN readable TINYINT NOT NULL DEFAULT 0;
    1690 SQL
    1691 
    1692         $query->execute;
    1693 
    1694     $self->setRevision(10);
    1695 }
    1696 
    1697 #######################################################################################
    1698 #
    1699 # Create revision 11 of the database
    1700 #
    1701 #######################################################################################
    1702 sub createRevision_11 {
    1703     my ($self) = @_;
    1704 
    1705     print "* Creating revision 11 of '$self->{_dbName}'\n";
    1706 
    1707     # same shape as other stage tables to enable easy update
    1708     #my $query = $self->{_db}->prepare(<<SQL);
    1709     #CREATE TABLE burntool (
    1710     #        timestamp TIMESTAMP DEFAULT NOW(),
    1711     #        label VARCHAR(128) DEFAULT "NONE",
    1712     #        pending BIGINT NOT NULL,
    1713     #        processed BIGINT NOT NULL,
    1714     #        faults BIGINT NOT NULL);
    1715 #SQL
    1716 
    1717 #        $query->execute;
    1718 #    $query = $self->{_db}->prepare(<<SQL);
    1719 #    CREATE INDEX burntoolIndex ON burntool (timestamp, label);
    1720 #SQL
    1721 
    1722 #        $query->execute;
    1723 
    1724     $self->setRevision(11);
    1725 }
    1726 
    1727 #######################################################################################
    1728 #
    1729 # Create revision 12 of the database
    1730 #
    1731 # - adding nightlyscience table
    1732 #
    1733 #######################################################################################
    1734 sub createRevision_12 {
    1735     my ($self) = @_;
    1736 
    1737     print "* Creating revision 12 of '$self->{_dbName}'\n";
    1738 
    1739     my $query = $self->{_db}->prepare(<<SQL);
    1740     CREATE TABLE nightlyscience (
    1741             timestamp TIMESTAMP DEFAULT NOW(),
    1742             status VARCHAR(128) DEFAULT "NONE");
    1743 SQL
    1744 
    1745         $query->execute;
    1746 
    1747     $self->setRevision(12);
    1748 }
    1749 #######################################################################################
    1750 #
    1751 # Create revision 13 of the database
    1752 #
    1753 # adding server_dates table
    1754 #
    1755 #######################################################################################
    1756 sub createRevision_13 {
    1757     my ($self) = @_;
    1758 
    1759     print "* Creating revision 13 of '$self->{_dbName}'\n";
    1760 
    1761     my $query = $self->{_db}->prepare(<<SQL);
    1762     CREATE TABLE server_dates (
    1763             timestamp TIMESTAMP DEFAULT NOW(),
    1764             server VARCHAR(64) DEFAULT "NONE",
    1765             date VARCHAR(64) DEFAULT "NONE");
    1766 SQL
    1767 
    1768         $query->execute;
    1769 
    1770     $self->setRevision(13);
    1771 }
    177213431;
    17731344
Note: See TracChangeset for help on using the changeset viewer.