1 package OpenILS::Utils::OfflineStore;
2 use strict; use warnings;
5 use OpenSRF::Utils::Config;
24 return $_dbh if ($_dbh);
26 $_dbh = DBI->connect($_dsn,$_u,$_p,
28 RootClass => 'DBIx::ContextualFetch'
42 package OpenILS::Utils::OfflineStore::Session;
43 use base 'OpenILS::Utils::OfflineStore';
47 $self->db_Main->do( <<" SQL" );
49 CREATE TABLE session (
50 key TEXT UNIQUE PRIMARY KEY,
53 creator INTEGER NOT NULL,
54 create_time INTEGER NOT NULL,
55 in_process INTEGER NOT NULL DEFAULT 0,
58 num_complete INTEGER NOT NULL DEFAULT 0
60 CREATE INDEX IF NOT EXISTS session_pkey ON session (key);
61 CREATE INDEX IF NOT EXISTS session_org ON session (org);
62 CREATE INDEX IF NOT EXISTS session_creation ON session (create_time);
67 __PACKAGE__->table('offline.session');
68 __PACKAGE__->columns( Essential => qw/key org description
69 creator create_time in_process start_time end_time num_complete/);
70 __PACKAGE__->has_many(scripts => 'OpenILS::Utils::OfflineStore::Script');
73 package OpenILS::Utils::OfflineStore::Script;
74 use base 'OpenILS::Utils::OfflineStore';
78 $self->db_Main->do( <<" SQL" );
81 id INTEGER UNIQUE PRIMARY KEY AUTOINCREMENT,
82 session TEXT NOT NULL,
83 requestor INTEGER NOT NULL,
84 create_time INTEGER NOT NULL,
85 workstation TEXT NOT NULL,
86 logfile TEXT NOT NULL,
87 time_delta INTEGER NOT NULL DEFAULT 0,
88 count INTEGER NOT NULL DEFAULT 0
90 CREATE INDEX IF NOT EXISTS script_pkey ON script (id);
91 CREATE INDEX IF NOT EXISTS script_ws ON script (workstation);
92 CREATE INDEX IF NOT EXISTS script_session ON script (session);
97 __PACKAGE__->table('offline.script');
98 __PACKAGE__->columns( Essential => qw/id session requestor create_time workstation logfile time_delta count/);
99 __PACKAGE__->has_a(session => 'OpenILS::Utils::OfflineStore::Session');