IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 4894


Ignore:
Timestamp:
Aug 26, 2005, 5:40:25 PM (21 years ago)
Author:
jhoblitt
Message:

add get_db_schema() and get_db_clear()

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Nebulous-Server/lib/Nebulous/Server/SQL.pm

    r4440 r4894  
    11# Copyright (c) 2004  Joshua Hoblitt
    22#
    3 # $Id: SQL.pm,v 1.5 2005-06-30 02:35:06 jhoblitt Exp $
     3# $Id: SQL.pm,v 1.6 2005-08-27 03:40:25 jhoblitt Exp $
    44
    55package Nebulous::Server::SQL;
     
    9999);
    100100
     101{
     102    my @schema;
     103
     104    local $/ = ';';
     105
     106    foreach my $statement (<DATA>) {
     107        last unless ( $statement =~ /\S+/ );
     108        push @schema, $statement;
     109    }
     110
     111    $sql{get_db_schema} = \@schema;
     112}
     113
     114{
     115    my @clear = split /;/, <<END;
     116DROP TABLE IF EXISTS storage_object;
     117DROP TABLE IF EXISTS instance;
     118DROP TABLE IF EXISTS lock_record;
     119DROP TABLE IF EXISTS volume;
     120DROP TABLE IF EXISTS class;
     121DROP TABLE IF EXISTS log
     122END
     123    $sql{get_db_clear} = \@clear;
     124}
     125
    101126__PACKAGE__->mk_ro_accessors( keys %sql );
    102127
     
    1131381;
    114139
    115 __END__
     140__DATA__
     141CREATE TABLE storage_object (
     142    so_id BIGINT NOT NULL AUTO_INCREMENT,
     143    ext_id VARCHAR(255) BINARY NOT NULL UNIQUE,
     144    class_id TINYINT NOT NULL,
     145    comment VARCHAR(255),
     146    read_lock TINYINT DEFAULT 0 NOT NULL,
     147    write_lock ENUM( 'write' ),
     148    epoch TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
     149    mtime TIMESTAMP,
     150    PRIMARY KEY(so_id),
     151    KEY(ext_id(64)),
     152    KEY(class_id)
     153) ENGINE=innodb;
     154
     155CREATE TABLE instance (
     156    ins_id BIGINT NOT NULL AUTO_INCREMENT,
     157    so_id BIGINT NOT NULL,
     158    uri VARCHAR(255) BINARY NOT NULL,
     159    sha1sum CHAR(40) ASCII,
     160    assigned_location BOOL,
     161    epoch TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
     162    mtime TIMESTAMP,
     163    PRIMARY KEY(ins_id),
     164    KEY(so_id),
     165    KEY(uri(64))
     166) ENGINE=innodb;
     167
     168CREATE TABLE lock_record (
     169    so_id BIGINT NOT NULL,
     170    type ENUM( 'read', 'write' ) NOT NULL,
     171    epoch TIMESTAMP,
     172    KEY(so_ID)
     173) ENGINE=innodb;
     174
     175CREATE TABLE volume (
     176    vol_id INT NOT NULL AUTO_INCREMENT,
     177    name VARCHAR(255) UNIQUE BINARY NOT NULL,
     178    uri VARCHAR(255) BINARY NOT NULL,
     179    key(vol_id)
     180) ENGINE=innodb;
     181
     182CREATE TABLE class (
     183    class_id TINYINT NOT NULL AUTO_INCREMENT,
     184    instance TINYINT NOT NULL,
     185    priority TINYINT,
     186    comment VARCHAR(255),
     187    key(class_id)
     188) ENGINE=innodb;
     189
     190CREATE TABLE log (
     191    timestamp TIMESTAMP,
     192    hostname VARCHAR(255),
     193    level VARCHAR(255),
     194    sub VARCHAR(255),
     195    message VARCHAR(2048) NOT NULL,
     196    PRIMARY KEY(timestamp)
     197) ENGINE=innodb;
  • trunk/Nebulous/lib/Nebulous/Server/SQL.pm

    r4440 r4894  
    11# Copyright (c) 2004  Joshua Hoblitt
    22#
    3 # $Id: SQL.pm,v 1.5 2005-06-30 02:35:06 jhoblitt Exp $
     3# $Id: SQL.pm,v 1.6 2005-08-27 03:40:25 jhoblitt Exp $
    44
    55package Nebulous::Server::SQL;
     
    9999);
    100100
     101{
     102    my @schema;
     103
     104    local $/ = ';';
     105
     106    foreach my $statement (<DATA>) {
     107        last unless ( $statement =~ /\S+/ );
     108        push @schema, $statement;
     109    }
     110
     111    $sql{get_db_schema} = \@schema;
     112}
     113
     114{
     115    my @clear = split /;/, <<END;
     116DROP TABLE IF EXISTS storage_object;
     117DROP TABLE IF EXISTS instance;
     118DROP TABLE IF EXISTS lock_record;
     119DROP TABLE IF EXISTS volume;
     120DROP TABLE IF EXISTS class;
     121DROP TABLE IF EXISTS log
     122END
     123    $sql{get_db_clear} = \@clear;
     124}
     125
    101126__PACKAGE__->mk_ro_accessors( keys %sql );
    102127
     
    1131381;
    114139
    115 __END__
     140__DATA__
     141CREATE TABLE storage_object (
     142    so_id BIGINT NOT NULL AUTO_INCREMENT,
     143    ext_id VARCHAR(255) BINARY NOT NULL UNIQUE,
     144    class_id TINYINT NOT NULL,
     145    comment VARCHAR(255),
     146    read_lock TINYINT DEFAULT 0 NOT NULL,
     147    write_lock ENUM( 'write' ),
     148    epoch TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
     149    mtime TIMESTAMP,
     150    PRIMARY KEY(so_id),
     151    KEY(ext_id(64)),
     152    KEY(class_id)
     153) ENGINE=innodb;
     154
     155CREATE TABLE instance (
     156    ins_id BIGINT NOT NULL AUTO_INCREMENT,
     157    so_id BIGINT NOT NULL,
     158    uri VARCHAR(255) BINARY NOT NULL,
     159    sha1sum CHAR(40) ASCII,
     160    assigned_location BOOL,
     161    epoch TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
     162    mtime TIMESTAMP,
     163    PRIMARY KEY(ins_id),
     164    KEY(so_id),
     165    KEY(uri(64))
     166) ENGINE=innodb;
     167
     168CREATE TABLE lock_record (
     169    so_id BIGINT NOT NULL,
     170    type ENUM( 'read', 'write' ) NOT NULL,
     171    epoch TIMESTAMP,
     172    KEY(so_ID)
     173) ENGINE=innodb;
     174
     175CREATE TABLE volume (
     176    vol_id INT NOT NULL AUTO_INCREMENT,
     177    name VARCHAR(255) UNIQUE BINARY NOT NULL,
     178    uri VARCHAR(255) BINARY NOT NULL,
     179    key(vol_id)
     180) ENGINE=innodb;
     181
     182CREATE TABLE class (
     183    class_id TINYINT NOT NULL AUTO_INCREMENT,
     184    instance TINYINT NOT NULL,
     185    priority TINYINT,
     186    comment VARCHAR(255),
     187    key(class_id)
     188) ENGINE=innodb;
     189
     190CREATE TABLE log (
     191    timestamp TIMESTAMP,
     192    hostname VARCHAR(255),
     193    level VARCHAR(255),
     194    sub VARCHAR(255),
     195    message VARCHAR(2048) NOT NULL,
     196    PRIMARY KEY(timestamp)
     197) ENGINE=innodb;
Note: See TracChangeset for help on using the changeset viewer.