1 package OpenILS::Utils::OfflineStore;
4 use OpenSRF::Utils::Config;
10 $_file = $file if ($file);
17 return $_dbh if ($_dbh);
18 $_dbh = DBI->connect('dbi:SQLite:dbname='.$self->DBFile,'','');
19 OpenILS::Utils::OfflineStore::Session->_create_table;
20 OpenILS::Utils::OfflineStore::Script->_create_table;
26 package OpenILS::Utils::OfflineStore::Session;
27 use base 'OpenILS::Utils::OfflineStore';
31 $self->db_Main->do( <<" SQL" );
33 CREATE TABLE session (
34 key TEXT UNIQUE PRIMARY KEY,
37 creator INTEGER NOT NULL,
38 create_time INTEGER NOT NULL,
39 complete INTEGER NOT NULL DEFAULT 0,
40 in_process INTEGER NOT NULL DEFAULT 0,
44 CREATE INDEX IF NOT EXISTS session_pkey ON session (key);
45 CREATE INDEX IF NOT EXISTS session_org ON session (org);
46 CREATE INDEX IF NOT EXISTS session_creation ON session (create_time);
51 __PACKAGE__->table('session');
52 __PACKAGE__->columns( Essential => qw/key org description
53 creator create_time complete in_process start_time end_time/);
54 __PACKAGE__->has_many(scripts => 'OpenILS::Utils::OfflineStore::Script');
57 package OpenILS::Utils::OfflineStore::Script;
58 use base 'OpenILS::Utils::OfflineStore';
62 $self->db_Main->do( <<" SQL" );
65 id INTEGER UNIQUE PRIMARY KEY AUTOINCREMENT,
66 session TEXT NOT NULL,
67 requestor INTEGER NOT NULL,
68 timestamp INTEGER NOT NULL,
69 workstation TEXT NOT NULL,
70 logfile TEXT NOT NULL,
71 time_delta INTEGER NOT NULL DEFAULT 0
73 CREATE INDEX IF NOT EXISTS script_pkey ON script (id);
74 CREATE INDEX IF NOT EXISTS script_ws ON script (workstation);
75 CREATE INDEX IF NOT EXISTS script_session ON script (session);
80 __PACKAGE__->table('script');
81 __PACKAGE__->columns( Essential => qw/id session requestor timestamp workstation logfile time_delta/);
82 __PACKAGE__->has_a(session => 'OpenILS::Utils::OfflineStore::Session');