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 in_process INTEGER NOT NULL DEFAULT 0,
43 CREATE INDEX IF NOT EXISTS session_pkey ON session (key);
44 CREATE INDEX IF NOT EXISTS session_org ON session (org);
45 CREATE INDEX IF NOT EXISTS session_creation ON session (create_time);
50 __PACKAGE__->table('session');
51 __PACKAGE__->columns( Essential => qw/key org description
52 creator create_time in_process start_time end_time/);
53 __PACKAGE__->has_many(scripts => 'OpenILS::Utils::OfflineStore::Script');
56 package OpenILS::Utils::OfflineStore::Script;
57 use base 'OpenILS::Utils::OfflineStore';
61 $self->db_Main->do( <<" SQL" );
64 id INTEGER UNIQUE PRIMARY KEY AUTOINCREMENT,
65 session TEXT NOT NULL,
66 requestor INTEGER NOT NULL,
67 create_time INTEGER NOT NULL,
68 workstation TEXT NOT NULL,
69 logfile TEXT NOT NULL,
70 time_delta INTEGER NOT NULL DEFAULT 0,
71 count 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 create_time workstation logfile time_delta count/);
82 __PACKAGE__->has_a(session => 'OpenILS::Utils::OfflineStore::Session');