Removed /usr/local from CDPATH
[clearscm.git] / CCDB / etc / ccdb.sql
1 -- -----------------------------------------------------------------------------
2 --
3 -- File:        $RCSfile: ccdb.sql,v $
4 -- Revision:    $Revision: 1.3 $
5 -- Description: Clearcase DB
6 -- Author:      Andrew@ClearSCM.com
7 -- Created:     Wed Mar 14 15:53:12 PDT 2011
8 -- Modified:    $Date: 2011/04/15 22:19:21 $
9 -- Language:    SQL
10 --
11 -- Copyright (c) 2011, Tellabs, Inc., all rights reserved
12 --
13 -- -----------------------------------------------------------------------------
14 -- Warning: The following line will delete the old database!
15 drop database if exists ccdb;
16
17 -- Create a new database
18 create database ccdb;
19
20 -- Now let's focus on this new database
21 use ccdb;
22
23 -- registry: Defines a registry region
24 create table registry (
25   name            varchar (767) collate latin1_general_cs not null,
26
27   primary key (name)
28 ) type=innodb; -- registry
29
30 -- region: Defines a region within a registry
31 create table region (
32   name             varchar (767) collate latin1_general_cs not null,
33   registry         varchar (767) collate latin1_general_cs not null,
34
35   primary key (registry, name),
36   key regionIndex (name),
37   foreign key registryLink (registry) references registry (name)
38     on delete cascade
39     on update cascade
40 ) type=innodb; -- region
41
42 -- vob: Defines a vob
43 create table vob (
44   oid             char (41),
45   name            varchar (767) collate latin1_general_cs not null,
46   epoch           bigint default 0,
47   type            enum (
48                     'base',
49                     'ucm'
50                   ) not null default 'base',
51
52   primary key (oid),
53   key nameIndex (name)
54 ) type=innodb; -- vob
55
56 -- folder: Defines a UCM folder
57 create table folder (
58   oid            char (41),
59   name           varchar (767) collate latin1_general_cs not null,
60   pvob           varchar (767) collate latin1_general_cs not null,
61
62   primary key (oid),
63   key nameIndex (name),
64   foreign key pvobLink (pvob) references vob (name)
65     on delete cascade
66     on update cascade
67 ) type=innodb; -- folder
68
69 -- subfolder: Defines a UCM subfolder
70 create table subfolder (
71   parent         varchar (767) collate latin1_general_cs not null,
72   subfolder      varchar (767) collate latin1_general_cs not null,
73   pvob           varchar (767) collate latin1_general_cs not null,
74
75   primary key (parent, subfolder, pvob),
76   foreign key parentLink (parent) references folder (name)
77     on delete cascade
78     on update cascade,
79   foreign key subfolderLink (subfolder) references folder (name)
80     on delete cascade
81     on update cascade,
82   foreign key pvobLink (pvob) references vob (name)
83     on delete cascade
84     on update cascade
85 ) type=innodb; -- subfolder
86   
87 -- project: Defines a UCM project
88 create table project (
89   oid             char (41),
90   name            varchar (767) collate latin1_general_cs not null,
91   folder          varchar (767) collate latin1_general_cs not null,
92   pvob            varchar (767) collate latin1_general_cs not null,
93
94   primary key (oid),
95   key projectIndex (name),
96   key folderIndex (folder),
97   foreign key folderLink (folder) references folder (name)
98     on delete cascade
99     on update cascade,
100   foreign key pvobLink (pvob) references vob (name)
101     on delete cascade
102     on update cascade
103 ) type=innodb; -- project
104
105 -- stream: Defines a UCM stream
106 create table stream (
107   oid             char (41),
108   name            varchar (767) collate latin1_general_cs not null,
109   pvob            varchar (767) collate latin1_general_cs not null,
110   project         varchar (767) collate latin1_general_cs not null,
111   type            enum (
112                     'integration',
113                     'regular'
114                   ) not null default 'regular',
115
116   primary key (oid),
117   key streamIndex (name),
118   foreign key pvobLink (pvob) references vob (name)
119     on delete cascade
120     on update cascade,
121   foreign key projectLink (project) references project (name)
122     on delete cascade
123     on update cascade
124 ) type=innodb; -- stream
125
126 -- activity: Defines an activity
127 create table activity (
128   oid             char (41),
129   name            varchar (767) collate latin1_general_cs not null,
130   pvob            varchar (767) collate latin1_general_cs not null,
131   type            enum (
132                     'integration',
133                     'regular'
134                   ) not null default 'regular',
135   submitted       datetime,
136
137   primary key (oid),
138   key activityIndex (name),
139   foreign key pvobLink (pvob) references vob (name)
140     on delete cascade
141     on update cascade
142 ) type=innodb; -- activity
143
144 -- baseline: Defines a baseline
145 create table baseline (
146   oid             char (41),
147   name            varchar (767) collate latin1_general_cs not null,
148   pvob            varchar (767) collate latin1_general_cs not null,
149
150   primary key (oid),
151   key baselineIndex (name),
152   foreign key pvobLink (pvob) references vob (name)
153     on delete cascade
154     on update cascade
155 ) type=innodb; -- baseline
156
157 -- Cross references
158 create table stream_activity_xref (
159   stream          varchar (767) collate latin1_general_cs not null,
160   activity        varchar (767) collate latin1_general_cs not null,
161   pvob            varchar (767) collate latin1_general_cs not null,
162
163   primary key (stream, activity, pvob),
164   key streamIndex (stream),
165   key activityIndex (activity),
166   key pvobIndex (pvob),
167   foreign key streamLink (stream) references stream (name)
168     on delete cascade
169     on update cascade,
170   foreign key activityLink (activity) references activity (name)
171     on delete cascade
172     on update cascade,
173   foreign key pvobLink (pvob) references vob (name)
174     on delete cascade
175     on update cascade
176 ) type=innodb; -- stream_activity_xref
177
178 create table stream_baseline_xref (
179   stream          varchar (767) collate latin1_general_cs not null,
180   baseline        varchar (767) collate latin1_general_cs not null,
181   pvob            varchar (767) collate latin1_general_cs not null,
182
183   primary key (stream, baseline, pvob),
184   key streamIndex (stream),
185   key baselineIndex (baseline),
186   key pvobIndex (pvob),
187   foreign key streamLink (stream) references stream (name)
188     on delete cascade
189     on update cascade,
190   foreign key baselineLink (baseline) references baseline (name)
191     on delete cascade
192     on update cascade,
193   foreign key pvobLink (pvob) references vob (name)
194     on delete cascade
195     on update cascade
196 ) type=innodb; -- stream_baseline_xref
197
198
199 create table changeset (
200   activity        varchar (767) collate latin1_general_cs not null,
201   element         varchar (767) collate latin1_general_cs not null,
202   version         varchar (767) collate latin1_general_cs not null,
203   pvob            varchar (767) collate latin1_general_cs not null,
204   created         datetime,
205   
206   primary key (activity, element, version, pvob),
207   key activityIndex (activity),
208   key elementIndex (element),
209   key elementVersionIndex (version),
210   foreign key activityLink (activity) references activity (name)
211     on delete cascade
212     on update cascade,
213   foreign key pvobLink (pvob) references vob (name)
214     on delete cascade
215     on update cascade
216 ) type=innodb; -- changeset
217
218 create table baseline_activity_xref (
219   baseline        varchar (767) collate latin1_general_cs not null,
220   activity        varchar (767) collate latin1_general_cs not null,
221   pvob            varchar (767) collate latin1_general_cs not null,
222   
223   primary key (baseline, activity, pvob),
224   key baselineIndex (baseline),
225   key activityIndex (activity),
226   foreign key baselineLink (baseline) references baseline (name)
227     on delete cascade
228     on update cascade,
229   foreign key activityLink (activity) references activity (name)
230     on delete cascade
231     on update cascade,
232   foreign key pvobLink (pvob) references vob (name)
233     on delete cascade
234     on update cascade
235 ) type=innodb; -- baseline_activity_xref