Skip to content

Commit 34cfa37

Browse files
committed
add new schema files
This schema change adds a foreign key to the database. I'm checking right now to see if this foreign key can be added to the database or not...
1 parent dd45292 commit 34cfa37

File tree

4 files changed

+341
-0
lines changed

4 files changed

+341
-0
lines changed
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
-- Convert schema '/Users/doug/perl/cpantesters/schema/share/CPAN-Testers-Schema-0.023-MySQL.sql' to 'CPAN::Testers::Schema v0.024':;
2+
3+
BEGIN;
4+
5+
ALTER TABLE cpanstats ADD INDEX cpanstats_idx_perl (perl),
6+
ADD CONSTRAINT cpanstats_fk_perl FOREIGN KEY (perl) REFERENCES perl_version (version);
7+
8+
ALTER TABLE perl_version ENGINE=InnoDB;
9+
10+
11+
COMMIT;
12+
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
-- Convert schema '/Users/doug/perl/cpantesters/schema/share/CPAN-Testers-Schema-0.023-SQLite.sql' to '/Users/doug/perl/cpantesters/schema/share/CPAN-Testers-Schema-0.024-SQLite.sql':;
2+
3+
BEGIN;
4+
5+
CREATE INDEX "cpanstats_idx_perl02" ON "cpanstats" ("perl");
6+
7+
8+
9+
COMMIT;
10+
Lines changed: 157 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,157 @@
1+
--
2+
-- Created by SQL::Translator::Producer::MySQL
3+
-- Created on Thu Aug 23 20:34:59 2018
4+
--
5+
SET foreign_key_checks=0;
6+
7+
DROP TABLE IF EXISTS `metabase_user`;
8+
9+
--
10+
-- Table: `metabase_user`
11+
--
12+
CREATE TABLE `metabase_user` (
13+
`id` integer NOT NULL auto_increment,
14+
`resource` char(50) NOT NULL,
15+
`fullname` varchar(255) NOT NULL,
16+
`email` varchar(255) NULL,
17+
PRIMARY KEY (`id`),
18+
UNIQUE `metabase_user_resource` (`resource`)
19+
);
20+
21+
DROP TABLE IF EXISTS `perl_version`;
22+
23+
--
24+
-- Table: `perl_version`
25+
--
26+
CREATE TABLE `perl_version` (
27+
`version` varchar(255) NOT NULL,
28+
`perl` varchar(32) NULL,
29+
`patch` tinyint(1) NOT NULL DEFAULT 0,
30+
`devel` tinyint(1) NOT NULL DEFAULT 0,
31+
PRIMARY KEY (`version`)
32+
) ENGINE=InnoDB;
33+
34+
DROP TABLE IF EXISTS `test_report`;
35+
36+
--
37+
-- Table: `test_report`
38+
--
39+
CREATE TABLE `test_report` (
40+
`id` char(36) NOT NULL,
41+
`created` datetime NOT NULL,
42+
`report` JSON NOT NULL,
43+
PRIMARY KEY (`id`)
44+
);
45+
46+
DROP TABLE IF EXISTS `uploads`;
47+
48+
--
49+
-- Table: `uploads`
50+
--
51+
CREATE TABLE `uploads` (
52+
`uploadid` integer unsigned NOT NULL auto_increment,
53+
`type` varchar(255) NOT NULL,
54+
`author` varchar(255) NOT NULL,
55+
`dist` varchar(255) NOT NULL,
56+
`version` varchar(255) NOT NULL,
57+
`filename` varchar(255) NOT NULL,
58+
`released` bigint NOT NULL,
59+
PRIMARY KEY (`uploadid`)
60+
) ENGINE=InnoDB;
61+
62+
DROP TABLE IF EXISTS `ixlatest`;
63+
64+
--
65+
-- Table: `ixlatest`
66+
--
67+
CREATE TABLE `ixlatest` (
68+
`dist` varchar(255) NOT NULL,
69+
`author` varchar(255) NOT NULL,
70+
`version` varchar(255) NOT NULL,
71+
`released` bigint NOT NULL,
72+
`oncpan` integer NOT NULL,
73+
`uploadid` integer unsigned NOT NULL,
74+
INDEX `ixlatest_idx_uploadid` (`uploadid`),
75+
PRIMARY KEY (`dist`, `author`),
76+
CONSTRAINT `ixlatest_fk_uploadid` FOREIGN KEY (`uploadid`) REFERENCES `uploads` (`uploadid`)
77+
) ENGINE=InnoDB;
78+
79+
DROP TABLE IF EXISTS `release_data`;
80+
81+
--
82+
-- Table: `release_data`
83+
--
84+
CREATE TABLE `release_data` (
85+
`dist` varchar(255) NOT NULL,
86+
`version` varchar(255) NOT NULL,
87+
`id` integer NOT NULL,
88+
`guid` char(36) NOT NULL,
89+
`oncpan` integer NOT NULL,
90+
`distmat` integer NOT NULL,
91+
`perlmat` integer NOT NULL,
92+
`patched` integer NOT NULL,
93+
`pass` integer NOT NULL,
94+
`fail` integer NOT NULL,
95+
`na` integer NOT NULL,
96+
`unknown` integer NOT NULL,
97+
`uploadid` integer unsigned NOT NULL,
98+
INDEX `release_data_idx_uploadid` (`uploadid`),
99+
PRIMARY KEY (`id`, `guid`),
100+
CONSTRAINT `release_data_fk_uploadid` FOREIGN KEY (`uploadid`) REFERENCES `uploads` (`uploadid`)
101+
) ENGINE=InnoDB;
102+
103+
DROP TABLE IF EXISTS `cpanstats`;
104+
105+
--
106+
-- Table: `cpanstats`
107+
--
108+
CREATE TABLE `cpanstats` (
109+
`id` integer unsigned NOT NULL auto_increment,
110+
`guid` char(36) NOT NULL,
111+
`state` enum('pass', 'fail', 'unknown', 'na') NOT NULL,
112+
`postdate` mediumint unsigned NOT NULL,
113+
`tester` varchar(255) NOT NULL,
114+
`dist` varchar(255) NOT NULL,
115+
`version` varchar(255) NOT NULL,
116+
`platform` varchar(255) NOT NULL,
117+
`perl` varchar(255) NOT NULL,
118+
`osname` varchar(255) NOT NULL,
119+
`osvers` varchar(255) NOT NULL,
120+
`fulldate` varchar(32) NOT NULL,
121+
`type` tinyint unsigned NOT NULL,
122+
`uploadid` integer unsigned NOT NULL,
123+
INDEX `cpanstats_idx_perl` (`perl`),
124+
INDEX `cpanstats_idx_uploadid` (`uploadid`),
125+
PRIMARY KEY (`id`),
126+
UNIQUE `guid` (`guid`),
127+
CONSTRAINT `cpanstats_fk_perl` FOREIGN KEY (`perl`) REFERENCES `perl_version` (`version`),
128+
CONSTRAINT `cpanstats_fk_uploadid` FOREIGN KEY (`uploadid`) REFERENCES `uploads` (`uploadid`)
129+
) ENGINE=InnoDB;
130+
131+
DROP TABLE IF EXISTS `release_summary`;
132+
133+
--
134+
-- Table: `release_summary`
135+
--
136+
CREATE TABLE `release_summary` (
137+
`dist` varchar(255) NOT NULL,
138+
`version` varchar(255) NOT NULL,
139+
`id` integer NOT NULL,
140+
`guid` char(36) NOT NULL,
141+
`oncpan` integer NOT NULL,
142+
`distmat` integer NOT NULL,
143+
`perlmat` integer NOT NULL,
144+
`patched` integer NOT NULL,
145+
`pass` integer NOT NULL,
146+
`fail` integer NOT NULL,
147+
`na` integer NOT NULL,
148+
`unknown` integer NOT NULL,
149+
`uploadid` integer unsigned NOT NULL,
150+
INDEX `release_summary_idx_guid` (`guid`),
151+
INDEX `release_summary_idx_uploadid` (`uploadid`),
152+
CONSTRAINT `release_summary_fk_guid` FOREIGN KEY (`guid`) REFERENCES `cpanstats` (`guid`),
153+
CONSTRAINT `release_summary_fk_uploadid` FOREIGN KEY (`uploadid`) REFERENCES `uploads` (`uploadid`)
154+
) ENGINE=InnoDB;
155+
156+
SET foreign_key_checks=1;
157+
Lines changed: 162 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,162 @@
1+
--
2+
-- Created by SQL::Translator::Producer::SQLite
3+
-- Created on Thu Aug 23 20:34:59 2018
4+
--
5+
6+
BEGIN TRANSACTION;
7+
8+
--
9+
-- Table: metabase_user
10+
--
11+
DROP TABLE metabase_user;
12+
13+
CREATE TABLE metabase_user (
14+
id INTEGER PRIMARY KEY NOT NULL,
15+
resource char(50) NOT NULL,
16+
fullname varchar NOT NULL,
17+
email varchar
18+
);
19+
20+
CREATE UNIQUE INDEX metabase_user_resource ON metabase_user (resource);
21+
22+
--
23+
-- Table: perl_version
24+
--
25+
DROP TABLE perl_version;
26+
27+
CREATE TABLE perl_version (
28+
version varchar(255) NOT NULL,
29+
perl varchar(32),
30+
patch tinyint(1) NOT NULL DEFAULT 0,
31+
devel tinyint(1) NOT NULL DEFAULT 0,
32+
PRIMARY KEY (version)
33+
);
34+
35+
--
36+
-- Table: test_report
37+
--
38+
DROP TABLE test_report;
39+
40+
CREATE TABLE test_report (
41+
id char(36) NOT NULL,
42+
created datetime NOT NULL,
43+
report JSON NOT NULL,
44+
PRIMARY KEY (id)
45+
);
46+
47+
--
48+
-- Table: uploads
49+
--
50+
DROP TABLE uploads;
51+
52+
CREATE TABLE uploads (
53+
uploadid INTEGER PRIMARY KEY NOT NULL,
54+
type varchar NOT NULL,
55+
author varchar NOT NULL,
56+
dist varchar NOT NULL,
57+
version varchar NOT NULL,
58+
filename varchar NOT NULL,
59+
released bigint NOT NULL
60+
);
61+
62+
--
63+
-- Table: ixlatest
64+
--
65+
DROP TABLE ixlatest;
66+
67+
CREATE TABLE ixlatest (
68+
dist varchar NOT NULL,
69+
author varchar NOT NULL,
70+
version varchar NOT NULL,
71+
released bigint NOT NULL,
72+
oncpan int NOT NULL,
73+
uploadid int NOT NULL,
74+
PRIMARY KEY (dist, author),
75+
FOREIGN KEY (uploadid) REFERENCES uploads(uploadid)
76+
);
77+
78+
CREATE INDEX ixlatest_idx_uploadid ON ixlatest (uploadid);
79+
80+
--
81+
-- Table: release_data
82+
--
83+
DROP TABLE release_data;
84+
85+
CREATE TABLE release_data (
86+
dist varchar NOT NULL,
87+
version varchar NOT NULL,
88+
id int NOT NULL,
89+
guid char(36) NOT NULL,
90+
oncpan int NOT NULL,
91+
distmat int NOT NULL,
92+
perlmat int NOT NULL,
93+
patched int NOT NULL,
94+
pass int NOT NULL,
95+
fail int NOT NULL,
96+
na int NOT NULL,
97+
unknown int NOT NULL,
98+
uploadid int NOT NULL,
99+
PRIMARY KEY (id, guid),
100+
FOREIGN KEY (uploadid) REFERENCES uploads(uploadid)
101+
);
102+
103+
CREATE INDEX release_data_idx_uploadid ON release_data (uploadid);
104+
105+
--
106+
-- Table: cpanstats
107+
--
108+
DROP TABLE cpanstats;
109+
110+
CREATE TABLE cpanstats (
111+
id INTEGER PRIMARY KEY NOT NULL,
112+
guid char(36) NOT NULL,
113+
state enum NOT NULL,
114+
postdate mediumint NOT NULL,
115+
tester varchar(255) NOT NULL,
116+
dist varchar(255) NOT NULL,
117+
version varchar(255) NOT NULL,
118+
platform varchar(255) NOT NULL,
119+
perl varchar(255) NOT NULL,
120+
osname varchar(255) NOT NULL,
121+
osvers varchar(255) NOT NULL,
122+
fulldate varchar(32) NOT NULL,
123+
type tinyint NOT NULL,
124+
uploadid int NOT NULL,
125+
FOREIGN KEY (perl) REFERENCES perl_version(version),
126+
FOREIGN KEY (uploadid) REFERENCES uploads(uploadid)
127+
);
128+
129+
CREATE INDEX cpanstats_idx_perl ON cpanstats (perl);
130+
131+
CREATE INDEX cpanstats_idx_uploadid ON cpanstats (uploadid);
132+
133+
CREATE UNIQUE INDEX guid ON cpanstats (guid);
134+
135+
--
136+
-- Table: release_summary
137+
--
138+
DROP TABLE release_summary;
139+
140+
CREATE TABLE release_summary (
141+
dist varchar NOT NULL,
142+
version varchar NOT NULL,
143+
id int NOT NULL,
144+
guid char(36) NOT NULL,
145+
oncpan int NOT NULL,
146+
distmat int NOT NULL,
147+
perlmat int NOT NULL,
148+
patched int NOT NULL,
149+
pass int NOT NULL,
150+
fail int NOT NULL,
151+
na int NOT NULL,
152+
unknown int NOT NULL,
153+
uploadid int NOT NULL,
154+
FOREIGN KEY (guid) REFERENCES cpanstats(guid),
155+
FOREIGN KEY (uploadid) REFERENCES uploads(uploadid)
156+
);
157+
158+
CREATE INDEX release_summary_idx_guid ON release_summary (guid);
159+
160+
CREATE INDEX release_summary_idx_uploadid ON release_summary (uploadid);
161+
162+
COMMIT;

0 commit comments

Comments
 (0)