]> git.sur5r.net Git - bacula/bacula/blob - bacula/src/cats/make_sqlite_tables.in
Add verbose, Uname info, better Device error msg
[bacula/bacula] / bacula / src / cats / make_sqlite_tables.in
1 #!/bin/sh
2 #
3 # shell script to create Bacula SQLite tables
4
5 bindir=@SQL_BINDIR@
6 cd @working_dir@
7
8 $bindir/sqlite bacula.db <<END-OF-DATA
9 CREATE TABLE Filename (
10   FilenameId INTEGER UNSIGNED AUTOINCREMENT,
11   Name TEXT DEFAULT "",
12   PRIMARY KEY(FilenameId) 
13   );
14
15 CREATE INDEX inx1 ON Filename (Name);
16
17 CREATE TABLE Path (
18    PathId INTEGER UNSIGNED AUTOINCREMENT,
19    Path TEXT DEFAULT "",
20    PRIMARY KEY(PathId) 
21    );
22
23 CREATE INDEX inx2 ON Path (Path);
24
25
26 CREATE TABLE File (
27    FileId INTEGER UNSIGNED AUTOINCREMENT,
28    FileIndex INTEGER UNSIGNED NOT NULL,
29    JobId INTEGER UNSIGNED REFERENCES Job NOT NULL,
30    PathId INTEGER UNSIGNED REFERENCES Path NOT NULL,
31    FilenameId INTEGER REFERENCES Filename NOT NULL,
32    MarkId INTEGER UNSIGNED DEFAULT 0,
33    LStat VARCHAR(255) NOT NULL,
34    MD5 VARCHAR(255) NOT NULL,
35    PRIMARY KEY(FileId) 
36    );
37
38 CREATE INDEX inx3 ON File (JobId);
39 CREATE INDEX inx4 ON File (PathId);
40 CREATE INDEX inx5 ON File (FileNameId);
41
42 CREATE TABLE Job (
43    JobId INTEGER UNSIGNED NOT NULL,
44    Job VARCHAR(128) NOT NULL,
45    Name VARCHAR(128) NOT NULL,
46    PurgedFiles TINYINT DEFAULT 0,
47    Type CHAR NOT NULL,
48    Level CHAR NOT NULL,
49    ClientId INTEGER REFERENCES Client DEFAULT 0,
50    JobStatus CHAR NOT NULL,
51    SchedTime DATETIME NOT NULL,
52    StartTime DATETIME DEFAULT 0,
53    EndTime DATETIME DEFAULT 0,
54    JobTDate BIGINT UNSIGNED DEFAULT 0,
55    VolSessionId INTEGER UNSIGNED DEFAULT 0,
56    VolSessionTime INTEGER UNSIGNED DEFAULT 0,
57    JobFiles INTEGER UNSIGNED DEFAULT 0,
58    JobBytes BIGINT UNSIGNED DEFAULT 0,
59    JobErrors INTEGER UNSIGNED DEFAULT 0,
60    JobMissingFiles INTEGER UNSIGNED DEFAULT 0,
61    PoolId INTEGER UNSIGNED REFERENCES Pool DEFAULT 0,
62    FileSetId INTEGER UNSIGNED REFERENCES FileSet DEFAULT 0,
63    PRIMARY KEY(JobId) 
64    );
65
66 CREATE INDEX inx6 ON Job (Name);
67
68 CREATE TABLE FileSet (
69    FileSetId INTEGER UNSIGNED AUTOINCREMENT,
70    FileSet VARCHAR(128) NOT NULL,
71    MD5 VARCHAR(25) NOT NULL,
72    PRIMARY KEY(FileSetId)
73    );
74
75 CREATE TABLE JobMedia (
76    JobMediaId INTEGER UNSIGNED AUTOINCREMENT,
77    JobId INTEGER UNSIGNED REFERENCES Job NOT NULL,
78    MediaId INTEGER UNSIGNED REFERENCES Media NOT NULL,
79    FirstIndex INTEGER UNSIGNED NOT NULL,
80    LastIndex INTEGER UNSIGNED NOT NULL,
81    StartFile INTEGER UNSIGNED DEFAULT 0,
82    EndFile INTEGER UNSIGNED DEFAULT 0,
83    StartBlock INTEGER UNSIGNED DEFAULT 0,
84    EndBlock INTEGER UNSIGNED DEFAULT 0,
85    PRIMARY KEY(JobMediaId) 
86    );
87
88 CREATE INDEX inx7 ON JobMedia (JobId, MediaId);
89
90
91 CREATE TABLE Media (
92    MediaId INTEGER UNSIGNED AUTOINCREMENT,
93    VolumeName VARCHAR(128) NOT NULL,
94    Slot INTEGER DEFAULT 0,
95    PoolId INTEGER UNSIGNED REFERENCES Pool NOT NULL,
96    MediaType VARCHAR(128) NOT NULL,
97    FirstWritten DATETIME DEFAULT 0,
98    LastWritten DATETIME DEFAULT 0,
99    LabelDate DATETIME DEFAULT 0,
100    VolJobs INTEGER UNSIGNED DEFAULT 0,
101    VolFiles INTEGER UNSIGNED DEFAULT 0,
102    VolBlocks INTEGER UNSIGNED DEFAULT 0,
103    VolMounts INTEGER UNSIGNED DEFAULT 0,
104    VolBytes BIGINT UNSIGNED DEFAULT 0,
105    VolErrors INTEGER UNSIGNED DEFAULT 0,
106    VolWrites INTEGER UNSIGNED DEFAULT 0,
107    VolCapacityBytes BIGINT UNSIGNED DEFAULT 0,
108    VolStatus VARCHAR(20) NOT NULL,
109    Recycle TINYINT DEFAULT 0,
110    VolRetention BIGINT UNSIGNED DEFAULT 0,
111    VolUseDuration BIGINT UNSIGNED DEFAULT 0,
112    MaxVolJobs INTEGER UNSIGNED DEFAULT 0,
113    MaxVolFiles INTEGER UNSIGNED DEFAULT 0,
114    MaxVolBytes BIGINT UNSIGNED DEFAULT 0,
115    PRIMARY KEY(MediaId)
116    );
117
118 CREATE INDEX inx8 ON Media (PoolId);
119
120 CREATE TABLE Pool (
121    PoolId INTEGER UNSIGNED AUTOINCREMENT,
122    Name VARCHAR(128) NOT NULL,
123    NumVols INTEGER UNSIGNED DEFAULT 0,
124    MaxVols INTEGER UNSIGNED DEFAULT 0,
125    UseOnce TINYINT DEFAULT 0,
126    UseCatalog TINYINT DEFAULT 1,
127    AcceptAnyVolume TINYINT DEFAULT 0,
128    VolRetention BIGINT UNSIGNED DEFAULT 0,
129    VolUseDuration BIGINT UNSIGNED DEFAULT 0,
130    MaxVolJobs INTEGER UNSIGNED DEFAULT 0,
131    MaxVolFiles INTEGER UNSIGNED DEFAULT 0,
132    MaxVolBytes BIGINT UNSIGNED DEFAULT 0,
133    AutoPrune TINYINT DEFAULT 0,
134    Recycle TINYINT DEFAULT 0,
135    PoolType VARCHAR(20) NOT NULL,
136    LabelFormat VARCHAR(128) NOT NULL,
137    UNIQUE (Name),
138    PRIMARY KEY (PoolId)
139    );
140
141
142 CREATE TABLE Client (
143    ClientId INTEGER UNSIGNED AUTOINCREMENT,
144    Name VARCHAR(128) NOT NULL,
145    Uname VARCHAR(255) NOT NULL,   -- uname -a field
146    AutoPrune TINYINT DEFAULT 0,
147    FileRetention BIGINT UNSIGNED DEFAULT 0,
148    JobRetention  BIGINT UNSIGNED DEFAULT 0,
149    UNIQUE (Name),
150    PRIMARY KEY(ClientId)
151    );
152
153 CREATE TABLE NextId (
154    id INTEGER UNSIGNED DEFAULT 0,
155    TableName TEXT NOT NULL,
156    PRIMARY KEY (TableName)
157    );
158
159 -- Initialize JobId to start at 1
160 INSERT INTO NextId (id, TableName) VALUES (1, "Job");
161
162 CREATE TABLE Version (
163    VersionId INTEGER UNSIGNED NOT NULL 
164    );
165
166 -- Initialize Version            
167 INSERT INTO Version (VersionId) VALUES (5);
168
169 CREATE TABLE Counters (
170    Counter TEXT NOT NULL,     
171    PoolId INTEGER UNSIGNED REFERENCES Pool DEFAULT 0,
172    MinValue INTEGER DEFAULT 0, 
173    MaxValue INTEGER DEFAULT 0,
174    CurrentValue INTEGER DEFAULT 0,
175    WrapCounter TEXT NOT NULL,
176    PRIMARY KEY (Counter)
177    );
178
179 PRAGMA default_synchronous = OFF;
180 PRAGMA default_cache_size = 10000;
181
182 END-OF-DATA
183
184 chmod 640 bacula.db
185 exit 0