]> git.sur5r.net Git - bacula/bacula/blob - bacula/src/cats/make_sqlite_tables.in
850b8f1efd54bd01300c72ba972881626f3b2b38
[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 UNSIGNED 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, PathId, FileNameId);
39
40 CREATE TABLE Job (
41    JobId INTEGER UNSIGNED NOT NULL,
42    Job VARCHAR(128) NOT NULL,
43    Name VARCHAR(128) NOT NULL,
44    Type CHAR NOT NULL,
45    Level CHAR NOT NULL,
46    ClientId INTEGER REFERENCES Client DEFAULT 0,
47    JobStatus CHAR NOT NULL,
48    SchedTime DATETIME NOT NULL,
49    StartTime DATETIME DEFAULT 0,
50    EndTime DATETIME DEFAULT 0,
51    JobTDate BIGINT UNSIGNED DEFAULT 0,
52    VolSessionId INTEGER UNSIGNED DEFAULT 0,
53    VolSessionTime INTEGER UNSIGNED DEFAULT 0,
54    JobFiles INTEGER UNSIGNED DEFAULT 0,
55    JobBytes BIGINT UNSIGNED DEFAULT 0,
56    JobErrors INTEGER UNSIGNED DEFAULT 0,
57    JobMissingFiles INTEGER UNSIGNED DEFAULT 0,
58    PoolId INTEGER UNSIGNED REFERENCES Pool DEFAULT 0,
59    FileSetId INTEGER UNSIGNED REFERENCES FileSet DEFAULT 0,
60    PurgedFiles TINYINT DEFAULT 0,
61    HasBase TINYINT DEFAULT 0,
62    PRIMARY KEY(JobId) 
63    );
64
65 CREATE INDEX inx6 ON Job (Name);
66
67 CREATE TABLE FileSet (
68    FileSetId INTEGER UNSIGNED AUTOINCREMENT,
69    FileSet VARCHAR(128) NOT NULL,
70    MD5 VARCHAR(25) NOT NULL,
71    CreateTime DATETIME DEFAULT 0,
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    VolIndex INTEGER UNSIGNED DEFAULT 0,
86    PRIMARY KEY(JobMediaId) 
87    );
88
89 CREATE INDEX inx7 ON JobMedia (JobId, MediaId);
90
91
92 CREATE TABLE Media (
93    MediaId INTEGER UNSIGNED AUTOINCREMENT,
94    VolumeName VARCHAR(128) NOT NULL,
95    Slot INTEGER DEFAULT 0,
96    PoolId INTEGER UNSIGNED REFERENCES Pool NOT NULL,
97    MediaType VARCHAR(128) NOT NULL,
98    FirstWritten DATETIME DEFAULT 0,
99    LastWritten DATETIME DEFAULT 0,
100    LabelDate DATETIME DEFAULT 0,
101    VolJobs INTEGER UNSIGNED DEFAULT 0,
102    VolFiles INTEGER UNSIGNED DEFAULT 0,
103    VolBlocks INTEGER UNSIGNED DEFAULT 0,
104    VolMounts INTEGER UNSIGNED DEFAULT 0,
105    VolBytes BIGINT UNSIGNED DEFAULT 0,
106    VolErrors INTEGER UNSIGNED DEFAULT 0,
107    VolWrites INTEGER UNSIGNED DEFAULT 0,
108    VolCapacityBytes BIGINT UNSIGNED DEFAULT 0,
109    VolStatus VARCHAR(20) NOT NULL,
110    Recycle TINYINT DEFAULT 0,
111    VolRetention BIGINT UNSIGNED DEFAULT 0,
112    VolUseDuration BIGINT UNSIGNED DEFAULT 0,
113    MaxVolJobs INTEGER UNSIGNED DEFAULT 0,
114    MaxVolFiles INTEGER UNSIGNED DEFAULT 0,
115    MaxVolBytes BIGINT UNSIGNED DEFAULT 0,
116    InChanger TINYINT DEFAULT 0,
117    MediaAddressing TINYINT DEFAULT 0,
118    VolReadTime BIGINT UNSIGNED DEFAULT 0,
119    VolWriteTime BIGINT UNSIGNED DEFAULT 0,
120    EndFile INTEGER UNSIGNED DEFAULT 0,
121    EndBlock INTEGER UNSIGNED DEFAULT 0,
122    PRIMARY KEY(MediaId)
123    );
124
125 CREATE INDEX inx8 ON Media (PoolId);
126
127 CREATE TABLE Pool (
128    PoolId INTEGER UNSIGNED AUTOINCREMENT,
129    Name VARCHAR(128) NOT NULL,
130    NumVols INTEGER UNSIGNED DEFAULT 0,
131    MaxVols INTEGER UNSIGNED DEFAULT 0,
132    UseOnce TINYINT DEFAULT 0,
133    UseCatalog TINYINT DEFAULT 1,
134    AcceptAnyVolume TINYINT DEFAULT 0,
135    VolRetention BIGINT UNSIGNED DEFAULT 0,
136    VolUseDuration BIGINT UNSIGNED DEFAULT 0,
137    MaxVolJobs INTEGER UNSIGNED DEFAULT 0,
138    MaxVolFiles INTEGER UNSIGNED DEFAULT 0,
139    MaxVolBytes BIGINT UNSIGNED DEFAULT 0,
140    AutoPrune TINYINT DEFAULT 0,
141    Recycle TINYINT DEFAULT 0,
142    PoolType VARCHAR(20) NOT NULL,
143    LabelFormat VARCHAR(128) NOT NULL,
144    Enabled TINYINT DEFAULT 1,
145    ScratchPoolId INTEGER UNSIGNED REFERENCES Pool DEFAULT 0,
146    RecyclePoolId INTEGER UNSIGNED REFERENCES Pool DEFAULT 0,
147    UNIQUE (Name),
148    PRIMARY KEY (PoolId)
149    );
150
151
152 CREATE TABLE Client (
153    ClientId INTEGER UNSIGNED AUTOINCREMENT,
154    Name VARCHAR(128) NOT NULL,
155    Uname VARCHAR(255) NOT NULL,   -- uname -a field
156    AutoPrune TINYINT DEFAULT 0,
157    FileRetention BIGINT UNSIGNED DEFAULT 0,
158    JobRetention  BIGINT UNSIGNED DEFAULT 0,
159    UNIQUE (Name),
160    PRIMARY KEY(ClientId)
161    );
162
163 CREATE TABLE BaseFiles (
164    BaseId INTEGER UNSIGNED AUTOINCREMENT,
165    BaseJobId INTEGER UNSIGNED REFERENCES Job NOT NULL,
166    JobId INTEGER UNSIGNED REFERENCES Job NOT NULL,
167    FileId INTEGER UNSIGNED REFERENCES File NOT NULL,
168    FileIndex INTEGER UNSIGNED,
169    PRIMARY KEY(BaseId)
170    );
171
172 CREATE TABLE UnsavedFiles (
173    UnsavedId INTEGER UNSIGNED AUTOINCREMENT,
174    JobId INTEGER UNSIGNED REFERENCES Job NOT NULL,
175    PathId INTEGER UNSIGNED REFERENCES Path NOT NULL,
176    FilenameId INTEGER UNSIGNED REFERENCES Filename NOT NULL,
177    PRIMARY KEY (UnsavedId)
178    );
179
180
181 CREATE TABLE NextId (
182    id INTEGER UNSIGNED DEFAULT 0,
183    TableName TEXT NOT NULL,
184    PRIMARY KEY (TableName)
185    );
186
187 -- Initialize JobId to start at 1
188 INSERT INTO NextId (id, TableName) VALUES (1, "Job");
189
190 CREATE TABLE Version (
191    VersionId INTEGER UNSIGNED NOT NULL 
192    );
193
194 -- Initialize Version            
195 INSERT INTO Version (VersionId) VALUES (8);
196
197 CREATE TABLE Counters (
198    Counter TEXT NOT NULL,     
199    MinValue INTEGER DEFAULT 0, 
200    MaxValue INTEGER DEFAULT 0,
201    CurrentValue INTEGER DEFAULT 0,
202    WrapCounter TEXT NOT NULL,
203    PRIMARY KEY (Counter)
204    );
205
206 PRAGMA default_synchronous = OFF;
207 PRAGMA default_cache_size = 10000;
208
209 END-OF-DATA
210
211 chmod 640 bacula.db
212 exit 0