-
Notifications
You must be signed in to change notification settings - Fork 12
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat(openchallenges): create data integration POC with Apache NiFi (A…
…RCH-332) (#2923)
- Loading branch information
1 parent
25068e5
commit 006d77e
Showing
5 changed files
with
1,759 additions
and
102 deletions.
There are no files selected for viewing
205 changes: 106 additions & 99 deletions
205
...penchallenges/challenge-service/src/main/resources/db/migration/V1.0.0__create_tables.sql
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,124 +1,131 @@ | ||
-- challenge_platform definition | ||
CREATE TABLE `challenge_platform` | ||
( | ||
`id` int NOT NULL AUTO_INCREMENT, | ||
`slug` varchar(255) NOT NULL UNIQUE, | ||
`name` varchar(255) NOT NULL UNIQUE, | ||
`avatar_key` varchar(255), | ||
`website_url` varchar(500) NOT NULL, | ||
`created_at` DATETIME DEFAULT CURRENT_TIMESTAMP, | ||
`updated_at` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, | ||
PRIMARY KEY (`id`) | ||
CREATE TABLE `challenge_platform` ( | ||
`id` int NOT NULL AUTO_INCREMENT, | ||
`slug` varchar(255) NOT NULL UNIQUE, | ||
`name` varchar(255) NOT NULL UNIQUE, | ||
`avatar_key` varchar(255), | ||
`website_url` varchar(500) NOT NULL, | ||
`created_at` DATETIME DEFAULT CURRENT_TIMESTAMP, | ||
`updated_at` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, | ||
PRIMARY KEY (`id`) | ||
); | ||
|
||
|
||
-- edam_concept definition | ||
CREATE TABLE `edam_concept` | ||
( | ||
`id` int NOT NULL AUTO_INCREMENT, | ||
`class_id` varchar(60) NOT NULL UNIQUE, | ||
`preferred_label` varchar(80) NOT NULL, | ||
PRIMARY KEY (`id`) | ||
CREATE TABLE `edam_concept` ( | ||
`id` int NOT NULL AUTO_INCREMENT, | ||
`class_id` varchar(60) NOT NULL UNIQUE, | ||
`preferred_label` varchar(80) NOT NULL, | ||
PRIMARY KEY (`id`) | ||
); | ||
|
||
|
||
-- challenge definition | ||
CREATE TABLE `challenge` | ||
( | ||
`id` bigint(20) NOT NULL AUTO_INCREMENT, | ||
`slug` varchar(255) NOT NULL UNIQUE, | ||
`name` varchar(255) NOT NULL, | ||
`headline` varchar(80), | ||
`description` varchar(1000) NOT NULL, | ||
`avatar_url` varchar(500), | ||
`website_url` varchar(500), | ||
`status` ENUM('upcoming', 'active', 'completed'), | ||
`platform_id` int, | ||
`doi` varchar(120), | ||
`start_date` DATE, | ||
`end_date` DATE, | ||
`operation_id` int, | ||
`created_at` DATETIME DEFAULT CURRENT_TIMESTAMP, | ||
`updated_at` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, | ||
PRIMARY KEY (`id`), | ||
FOREIGN KEY (`platform_id`) REFERENCES challenge_platform(`id`), | ||
FOREIGN KEY (`operation_id`) REFERENCES edam_concept(`id`), | ||
CONSTRAINT slug_check CHECK (char_length(`slug`) >= 3 and `slug` REGEXP '^[a-z0-9]+(?:-[a-z0-9]+)*$') | ||
CREATE TABLE `challenge` ( | ||
`id` bigint(20) NOT NULL AUTO_INCREMENT, | ||
`slug` varchar(255) NOT NULL UNIQUE, | ||
`name` varchar(255) NOT NULL, | ||
`headline` varchar(80), | ||
`description` varchar(1000) NOT NULL, | ||
`avatar_url` varchar(500), | ||
`website_url` varchar(500), | ||
`status` ENUM ('upcoming', 'active', 'completed'), | ||
`platform_id` int, | ||
`doi` varchar(120), | ||
`start_date` DATE, | ||
`end_date` DATE, | ||
`operation_id` int, | ||
`created_at` DATETIME DEFAULT CURRENT_TIMESTAMP, | ||
`updated_at` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, | ||
PRIMARY KEY (`id`), | ||
FOREIGN KEY (`platform_id`) REFERENCES challenge_platform (`id`), | ||
FOREIGN KEY (`operation_id`) REFERENCES edam_concept (`id`), | ||
CONSTRAINT slug_check CHECK ( | ||
char_length(`slug`) >= 3 | ||
and `slug` REGEXP '^[a-z0-9]+(?:-[a-z0-9]+)*$' | ||
) | ||
); | ||
|
||
|
||
-- challenge_organization_role definition | ||
CREATE TABLE `challenge_contribution` | ||
( | ||
`id` int NOT NULL AUTO_INCREMENT, | ||
`challenge_id` bigint(20) NOT NULL, | ||
`organization_id` bigint(20) NOT NULL, | ||
`role` ENUM('challenge_organizer', 'data_contributor', 'sponsor'), | ||
PRIMARY KEY (`id`), | ||
FOREIGN KEY (`challenge_id`) REFERENCES challenge(`id`), | ||
CONSTRAINT unique_item UNIQUE (`challenge_id`, `organization_id`, `role`) | ||
CREATE TABLE `challenge_contribution` ( | ||
`id` int NOT NULL AUTO_INCREMENT, | ||
`challenge_id` bigint(20) NOT NULL, | ||
`organization_id` bigint(20) NOT NULL, | ||
`role` ENUM ( | ||
'challenge_organizer', | ||
'data_contributor', | ||
'sponsor' | ||
), | ||
PRIMARY KEY (`id`), | ||
FOREIGN KEY (`challenge_id`) REFERENCES challenge (`id`), | ||
CONSTRAINT unique_item UNIQUE (`challenge_id`, `organization_id`, `role`) | ||
); | ||
|
||
|
||
-- challenge_incentive definition | ||
CREATE TABLE `challenge_incentive` | ||
( | ||
`id` int NOT NULL AUTO_INCREMENT, | ||
`name` ENUM('monetary', 'publication', 'speaking_engagement', 'other'), | ||
`challenge_id` bigint(20) NOT NULL, | ||
`created_at` DATETIME DEFAULT CURRENT_TIMESTAMP, | ||
PRIMARY KEY (`id`), | ||
FOREIGN KEY (`challenge_id`) REFERENCES challenge(`id`), | ||
CONSTRAINT unique_item UNIQUE (`name`, `challenge_id`) | ||
CREATE TABLE `challenge_incentive` ( | ||
`id` int NOT NULL AUTO_INCREMENT, | ||
`name` ENUM ( | ||
'monetary', | ||
'publication', | ||
'speaking_engagement', | ||
'other' | ||
), | ||
`challenge_id` bigint(20) NOT NULL, | ||
`created_at` DATETIME DEFAULT CURRENT_TIMESTAMP, | ||
PRIMARY KEY (`id`), | ||
FOREIGN KEY (`challenge_id`) REFERENCES challenge (`id`), | ||
CONSTRAINT unique_item UNIQUE (`name`, `challenge_id`) | ||
); | ||
|
||
|
||
-- challenge_submission_type definition | ||
CREATE TABLE `challenge_submission_type` | ||
( | ||
`id` int NOT NULL AUTO_INCREMENT, | ||
`name` ENUM('container_image', 'prediction_file', 'notebook', 'mlcube', 'other'), | ||
`challenge_id` bigint(20) NOT NULL, | ||
`created_at` DATETIME DEFAULT CURRENT_TIMESTAMP, | ||
PRIMARY KEY (`id`), | ||
FOREIGN KEY (`challenge_id`) REFERENCES challenge(`id`), | ||
CONSTRAINT unique_item UNIQUE (`name`, `challenge_id`) | ||
CREATE TABLE `challenge_submission_type` ( | ||
`id` int NOT NULL AUTO_INCREMENT, | ||
`name` ENUM ( | ||
'container_image', | ||
'prediction_file', | ||
'notebook', | ||
'mlcube', | ||
'other' | ||
), | ||
`challenge_id` bigint(20) NOT NULL, | ||
`created_at` DATETIME DEFAULT CURRENT_TIMESTAMP, | ||
PRIMARY KEY (`id`), | ||
FOREIGN KEY (`challenge_id`) REFERENCES challenge (`id`), | ||
CONSTRAINT unique_item UNIQUE (`name`, `challenge_id`) | ||
); | ||
|
||
|
||
-- challenge_input_data_type definition | ||
CREATE TABLE `challenge_input_data_type` | ||
( | ||
`id` int NOT NULL AUTO_INCREMENT, | ||
`challenge_id` bigint(20) NOT NULL, | ||
`edam_concept_id` int NOT NULL, | ||
`created_at` DATETIME DEFAULT CURRENT_TIMESTAMP, | ||
PRIMARY KEY (`id`), | ||
FOREIGN KEY (`challenge_id`) REFERENCES challenge(`id`), | ||
FOREIGN KEY (`edam_concept_id`) REFERENCES edam_concept(`id`), | ||
CONSTRAINT unique_item UNIQUE (`challenge_id`, `edam_concept_id`) | ||
CREATE TABLE `challenge_input_data_type` ( | ||
`id` int NOT NULL AUTO_INCREMENT, | ||
`challenge_id` bigint(20) NOT NULL, | ||
`edam_concept_id` int NOT NULL, | ||
`created_at` DATETIME DEFAULT CURRENT_TIMESTAMP, | ||
PRIMARY KEY (`id`), | ||
FOREIGN KEY (`challenge_id`) REFERENCES challenge (`id`), | ||
FOREIGN KEY (`edam_concept_id`) REFERENCES edam_concept (`id`), | ||
CONSTRAINT unique_item UNIQUE (`challenge_id`, `edam_concept_id`) | ||
); | ||
|
||
|
||
-- challenge_star definition | ||
CREATE TABLE `challenge_star` | ||
( | ||
`id` int NOT NULL AUTO_INCREMENT, | ||
`challenge_id` bigint(20) NOT NULL, | ||
`user_id` bigint(20) NOT NULL, | ||
`created_at` DATETIME DEFAULT CURRENT_TIMESTAMP, | ||
PRIMARY KEY (`id`), | ||
FOREIGN KEY (`challenge_id`) REFERENCES challenge(`id`), | ||
CONSTRAINT unique_item UNIQUE (`challenge_id`, `user_id`) | ||
CREATE TABLE `challenge_star` ( | ||
`id` int NOT NULL AUTO_INCREMENT, | ||
`challenge_id` bigint(20) NOT NULL, | ||
`user_id` bigint(20) NOT NULL, | ||
`created_at` DATETIME DEFAULT CURRENT_TIMESTAMP, | ||
PRIMARY KEY (`id`), | ||
FOREIGN KEY (`challenge_id`) REFERENCES challenge (`id`), | ||
CONSTRAINT unique_item UNIQUE (`challenge_id`, `user_id`) | ||
); | ||
|
||
|
||
-- challenge_category definition | ||
CREATE TABLE `challenge_category` | ||
( | ||
`id` int NOT NULL AUTO_INCREMENT, | ||
`challenge_id` bigint(20) NOT NULL, | ||
`name` ENUM('featured', 'benchmark', 'hackathon'), | ||
PRIMARY KEY (`id`), | ||
FOREIGN KEY (`challenge_id`) REFERENCES challenge(`id`) | ||
); | ||
CREATE TABLE `challenge_category` ( | ||
`id` int NOT NULL AUTO_INCREMENT, | ||
`challenge_id` bigint(20) NOT NULL, | ||
`name` ENUM ('featured', 'benchmark', 'hackathon'), | ||
PRIMARY KEY (`id`), | ||
FOREIGN KEY (`challenge_id`) REFERENCES challenge (`id`) | ||
); | ||
|
||
CREATE TABLE `nifi_demo` ( | ||
`id` int NOT NULL AUTO_INCREMENT, | ||
`name` varchar(120), | ||
PRIMARY KEY (`id`) | ||
); |
Oops, something went wrong.