blufin 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/bin/bf +5 -0
- data/bin/blufin +5 -0
- data/lib/blufin.rb +245 -0
- data/lib/core/code_scanners/common/scanner_common.rb +83 -0
- data/lib/core/code_scanners/common/scanner_java.rb +106 -0
- data/lib/core/code_scanners/scanner_java_embedded_objects.rb +386 -0
- data/lib/core/code_scanners/scanner_java_enums.rb +125 -0
- data/lib/core/code_scanners/scanner_java_source.rb +29 -0
- data/lib/core/code_scanners/scanner_java_tests.rb +157 -0
- data/lib/core/error_handling/schema_error.rb +9 -0
- data/lib/core/error_handling/sql_error.rb +21 -0
- data/lib/core/error_handling/sql_error_handler.rb +149 -0
- data/lib/core/error_handling/yml_error.rb +21 -0
- data/lib/core/error_handling/yml_error_handler.rb +437 -0
- data/lib/core/mysql.rb +347 -0
- data/lib/core/opt.rb +21 -0
- data/lib/core/site/site.rb +26 -0
- data/lib/core/site/site_auth.rb +88 -0
- data/lib/core/site/site_embedded.rb +27 -0
- data/lib/core/site/site_ports.rb +9 -0
- data/lib/core/site/site_resolver.rb +276 -0
- data/lib/core/site/site_services.rb +162 -0
- data/lib/core/site/site_ui.rb +16 -0
- data/lib/core/yml/config/yml_config_validator.rb +219 -0
- data/lib/core/yml/maven/yml_maven_validator.rb +1132 -0
- data/lib/core/yml/resource/yml_resource_validator.rb +154 -0
- data/lib/core/yml/schema/yml_schema_flags.rb +9 -0
- data/lib/core/yml/schema/yml_schema_validator.rb +1850 -0
- data/lib/core/yml/yml_cache_handler.rb +115 -0
- data/lib/core/yml/yml_common.rb +487 -0
- data/lib/core/yml/yml_meta_writer_base.rb +300 -0
- data/lib/core/yml/yml_outputter.rb +307 -0
- data/lib/core/yml/yml_validator_base.rb +630 -0
- data/lib/core/yml_writers/yml_configuration_writer.rb +40 -0
- data/lib/core/yml_writers/yml_java_api_resource_writer.rb +348 -0
- data/lib/core/yml_writers/yml_java_cron_type_writer.rb +113 -0
- data/lib/core/yml_writers/yml_java_css_dependency_writer.rb +59 -0
- data/lib/core/yml_writers/yml_java_dao_writer.rb +364 -0
- data/lib/core/yml_writers/yml_java_dto_writer.rb +251 -0
- data/lib/core/yml_writers/yml_java_embedded_object_writer.rb +968 -0
- data/lib/core/yml_writers/yml_java_enum_writer.rb +161 -0
- data/lib/core/yml_writers/yml_java_js_dependency_writer.rb +59 -0
- data/lib/core/yml_writers/yml_java_message_type_writer.rb +106 -0
- data/lib/core/yml_writers/yml_java_meta_writer.rb +173 -0
- data/lib/core/yml_writers/yml_java_model_writer.rb +510 -0
- data/lib/core/yml_writers/yml_java_pom_writer.rb +1050 -0
- data/lib/core/yml_writers/yml_java_resource_data_writer.rb +251 -0
- data/lib/core/yml_writers/yml_java_sdk_writer.rb +732 -0
- data/lib/core/yml_writers/yml_java_validator_writer.rb +280 -0
- data/lib/core/yml_writers/yml_java_worker_writer.rb +81 -0
- data/lib/core/yml_writers/yml_sql_structure_writer.rb +307 -0
- data/lib/core/yml_writers/yml_sql_template_writer.rb +243 -0
- data/lib/core/yml_writers/yml_vue_service_writer.rb +170 -0
- data/lib/core/yml_writers/yml_writer_base.rb +114 -0
- data/lib/routes/api_list.rb +35 -0
- data/lib/routes/api_meta.rb +59 -0
- data/lib/routes/build.rb +46 -0
- data/lib/routes/create/create_api.rb +35 -0
- data/lib/routes/create/create_ui.rb +84 -0
- data/lib/routes/export.rb +56 -0
- data/lib/routes/generate/generate_api.rb +225 -0
- data/lib/routes/generate/generate_img_favicon.rb +56 -0
- data/lib/routes/generate/generate_img_landing.rb +94 -0
- data/lib/routes/generate/generate_lambda.rb +43 -0
- data/lib/routes/lint.rb +35 -0
- data/lib/routes/mysql_reset.rb +43 -0
- data/lib/routes/release_blufin.rb +351 -0
- data/lib/routes/run.rb +35 -0
- data/lib/version.rb +1 -0
- data/opt/README.MD +2 -0
- data/opt/config/schema.yml +73 -0
- data/opt/config/template.yml +25 -0
- data/opt/sql/data/config/data-client.sql +7 -0
- data/opt/sql/data/config/data-db-configuration-property.sql +47 -0
- data/opt/sql/data/config/data-db-configuration.sql +9 -0
- data/opt/sql/data/config/data-db.sql +175 -0
- data/opt/sql/data/config/data-profile-api.sql +47 -0
- data/opt/sql/data/config/data-profile-cron.sql +0 -0
- data/opt/sql/data/config/data-profile-worker.sql +0 -0
- data/opt/sql/data/config/data-profile.sql +87 -0
- data/opt/sql/data/config/data-project.sql +95 -0
- data/opt/sql/structure/blufin-master-structure-fks.sql +65 -0
- data/opt/sql/structure/blufin-master-structure.sql +97 -0
- data/opt/sql/structure/blufin-mock-structure-fks.sql +38 -0
- data/opt/sql/structure/blufin-mock-structure.sql +98 -0
- data/opt/sql/templates/config/template-client.sql +7 -0
- data/opt/sql/templates/config/template-db-configuration-property.sql +11 -0
- data/opt/sql/templates/config/template-db-configuration.sql +9 -0
- data/opt/sql/templates/config/template-db.sql +21 -0
- data/opt/sql/templates/config/template-profile-api.sql +11 -0
- data/opt/sql/templates/config/template-profile-cron.sql +7 -0
- data/opt/sql/templates/config/template-profile-worker.sql +7 -0
- data/opt/sql/templates/config/template-profile.sql +21 -0
- data/opt/sql/templates/config/template-project.sql +23 -0
- data/opt/yml/api/schema/config/client.yml +14 -0
- data/opt/yml/api/schema/config/db.yml +45 -0
- data/opt/yml/api/schema/config/db_configuration.yml +22 -0
- data/opt/yml/api/schema/config/db_configuration_property.yml +22 -0
- data/opt/yml/api/schema/config/profile.yml +53 -0
- data/opt/yml/api/schema/config/profile_api.yml +22 -0
- data/opt/yml/api/schema/config/profile_cron.yml +14 -0
- data/opt/yml/api/schema/config/profile_worker.yml +14 -0
- data/opt/yml/api/schema/config/project.yml +48 -0
- data/opt/yml/api/schema/mock/mock.yml +99 -0
- data/opt/yml/api/schema/mock/mock_nested_if_enum.yml +16 -0
- data/opt/yml/api/schema/mock/mock_nested_if_enum_system.yml +16 -0
- data/opt/yml/api/schema/mock/mock_nested_linked.yml +43 -0
- data/opt/yml/api/schema/mock/mock_nested_multiple.yml +61 -0
- data/opt/yml/api/schema/mock/mock_nested_single.yml +67 -0
- data/opt/yml/api/schema/mock/mock_nested_single_super_deep.yml +32 -0
- data/opt/yml/api/schema/mock/mock_nested_single_super_super_deep.yml +17 -0
- metadata +240 -0
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
INSERT IGNORE INTO `blufin-master`.project (
|
|
2
|
+
`id`,
|
|
3
|
+
`client_id`, -- FK: config.client.id
|
|
4
|
+
`project_name`,
|
|
5
|
+
`project_name_pascal_case`,
|
|
6
|
+
`project_title`,
|
|
7
|
+
`domain`,
|
|
8
|
+
`alias`,
|
|
9
|
+
`port_range`,
|
|
10
|
+
`encryption_key`,
|
|
11
|
+
`encryption_iv`
|
|
12
|
+
) VALUES (
|
|
13
|
+
1,
|
|
14
|
+
1, -- FK: config.client.id
|
|
15
|
+
'skybutler',
|
|
16
|
+
'SkyButler',
|
|
17
|
+
'SkyButler',
|
|
18
|
+
'io',
|
|
19
|
+
'skb',
|
|
20
|
+
'6000-6019',
|
|
21
|
+
'2d@$''D2W~?hCvA[X',
|
|
22
|
+
'M$F)BB5%+VGtZ[<8'
|
|
23
|
+
);
|
|
24
|
+
|
|
25
|
+
INSERT IGNORE INTO `blufin-master`.project (
|
|
26
|
+
`id`,
|
|
27
|
+
`client_id`, -- FK: config.client.id
|
|
28
|
+
`project_name`,
|
|
29
|
+
`project_name_pascal_case`,
|
|
30
|
+
`project_title`,
|
|
31
|
+
`domain`,
|
|
32
|
+
`alias`,
|
|
33
|
+
`port_range`,
|
|
34
|
+
`encryption_key`,
|
|
35
|
+
`encryption_iv`
|
|
36
|
+
) VALUES (
|
|
37
|
+
2,
|
|
38
|
+
1, -- FK: config.client.id
|
|
39
|
+
'go-eat',
|
|
40
|
+
'GoEat',
|
|
41
|
+
'Go-EAT',
|
|
42
|
+
'app',
|
|
43
|
+
'ge',
|
|
44
|
+
'6020-6039',
|
|
45
|
+
'2d@$''D2W~?hCvA[X',
|
|
46
|
+
'M$F)BB5%+VGtZ[<8'
|
|
47
|
+
);
|
|
48
|
+
|
|
49
|
+
INSERT IGNORE INTO `blufin-master`.project (
|
|
50
|
+
`id`,
|
|
51
|
+
`client_id`, -- FK: config.client.id
|
|
52
|
+
`project_name`,
|
|
53
|
+
`project_name_pascal_case`,
|
|
54
|
+
`project_title`,
|
|
55
|
+
`domain`,
|
|
56
|
+
`alias`,
|
|
57
|
+
`port_range`,
|
|
58
|
+
`encryption_key`,
|
|
59
|
+
`encryption_iv`
|
|
60
|
+
) VALUES (
|
|
61
|
+
3,
|
|
62
|
+
1, -- FK: config.client.id
|
|
63
|
+
'taskbot',
|
|
64
|
+
'TaskBot',
|
|
65
|
+
'TaskBot',
|
|
66
|
+
'com.rannetsperger',
|
|
67
|
+
'tb',
|
|
68
|
+
'6040-6059',
|
|
69
|
+
'2d@$''D2W~?hCvA[X',
|
|
70
|
+
'M$F)BB5%+VGtZ[<8'
|
|
71
|
+
);
|
|
72
|
+
|
|
73
|
+
INSERT IGNORE INTO `blufin-master`.project (
|
|
74
|
+
`id`,
|
|
75
|
+
`client_id`, -- FK: config.client.id
|
|
76
|
+
`project_name`,
|
|
77
|
+
`project_name_pascal_case`,
|
|
78
|
+
`project_title`,
|
|
79
|
+
`domain`,
|
|
80
|
+
`alias`,
|
|
81
|
+
`port_range`,
|
|
82
|
+
`encryption_key`,
|
|
83
|
+
`encryption_iv`
|
|
84
|
+
) VALUES (
|
|
85
|
+
4,
|
|
86
|
+
1, -- FK: config.client.id
|
|
87
|
+
'blufin-labs',
|
|
88
|
+
'BlufinLabs',
|
|
89
|
+
'Blufin Labs',
|
|
90
|
+
'org',
|
|
91
|
+
'bf',
|
|
92
|
+
'6060-6079',
|
|
93
|
+
'2d@$''D2W~?hCvA[X',
|
|
94
|
+
'M$F)BB5%+VGtZ[<8'
|
|
95
|
+
);
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
-- Add db FKs
|
|
2
|
+
ALTER TABLE `db`
|
|
3
|
+
ADD CONSTRAINT `fk_1`
|
|
4
|
+
FOREIGN KEY (`project_id`)
|
|
5
|
+
REFERENCES `project` (`id`)
|
|
6
|
+
ON DELETE RESTRICT
|
|
7
|
+
ON UPDATE CASCADE;
|
|
8
|
+
|
|
9
|
+
-- Add db_configuration_property FKs
|
|
10
|
+
ALTER TABLE `db_configuration_property`
|
|
11
|
+
ADD CONSTRAINT `fk_2`
|
|
12
|
+
FOREIGN KEY (`db_configuration_id`)
|
|
13
|
+
REFERENCES `db_configuration` (`id`)
|
|
14
|
+
ON DELETE RESTRICT
|
|
15
|
+
ON UPDATE CASCADE;
|
|
16
|
+
|
|
17
|
+
-- Add profile FKs
|
|
18
|
+
ALTER TABLE `profile`
|
|
19
|
+
ADD CONSTRAINT `fk_3`
|
|
20
|
+
FOREIGN KEY (`project_id`)
|
|
21
|
+
REFERENCES `project` (`id`)
|
|
22
|
+
ON DELETE RESTRICT
|
|
23
|
+
ON UPDATE CASCADE;
|
|
24
|
+
|
|
25
|
+
-- Add profile_api FKs
|
|
26
|
+
ALTER TABLE `profile_api`
|
|
27
|
+
ADD CONSTRAINT `fk_4`
|
|
28
|
+
FOREIGN KEY (`profile_id`)
|
|
29
|
+
REFERENCES `profile` (`id`)
|
|
30
|
+
ON DELETE RESTRICT
|
|
31
|
+
ON UPDATE CASCADE,
|
|
32
|
+
ADD CONSTRAINT `fk_5`
|
|
33
|
+
FOREIGN KEY (`common_db_id`)
|
|
34
|
+
REFERENCES `db` (`id`)
|
|
35
|
+
ON DELETE RESTRICT
|
|
36
|
+
ON UPDATE CASCADE,
|
|
37
|
+
ADD CONSTRAINT `fk_6`
|
|
38
|
+
FOREIGN KEY (`common_db_configuration_id`)
|
|
39
|
+
REFERENCES `db_configuration` (`id`)
|
|
40
|
+
ON DELETE RESTRICT
|
|
41
|
+
ON UPDATE CASCADE;
|
|
42
|
+
|
|
43
|
+
-- Add profile_cron FKs
|
|
44
|
+
ALTER TABLE `profile_cron`
|
|
45
|
+
ADD CONSTRAINT `fk_7`
|
|
46
|
+
FOREIGN KEY (`profile_id`)
|
|
47
|
+
REFERENCES `profile` (`id`)
|
|
48
|
+
ON DELETE RESTRICT
|
|
49
|
+
ON UPDATE CASCADE;
|
|
50
|
+
|
|
51
|
+
-- Add profile_worker FKs
|
|
52
|
+
ALTER TABLE `profile_worker`
|
|
53
|
+
ADD CONSTRAINT `fk_8`
|
|
54
|
+
FOREIGN KEY (`profile_id`)
|
|
55
|
+
REFERENCES `profile` (`id`)
|
|
56
|
+
ON DELETE RESTRICT
|
|
57
|
+
ON UPDATE CASCADE;
|
|
58
|
+
|
|
59
|
+
-- Add project FKs
|
|
60
|
+
ALTER TABLE `project`
|
|
61
|
+
ADD CONSTRAINT `fk_9`
|
|
62
|
+
FOREIGN KEY (`client_id`)
|
|
63
|
+
REFERENCES `client` (`id`)
|
|
64
|
+
ON DELETE RESTRICT
|
|
65
|
+
ON UPDATE CASCADE;
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
-- Create client table
|
|
2
|
+
CREATE TABLE `client` (
|
|
3
|
+
`id` INT NOT NULL AUTO_INCREMENT,
|
|
4
|
+
`client_name` VARCHAR(64) NOT NULL,
|
|
5
|
+
PRIMARY KEY (`id`),
|
|
6
|
+
UNIQUE INDEX `config_client_client_name_uniq_idx` (`client_name`)
|
|
7
|
+
) ENGINE = InnoDB;
|
|
8
|
+
|
|
9
|
+
-- Create db table
|
|
10
|
+
CREATE TABLE `db` (
|
|
11
|
+
`id` INT NOT NULL AUTO_INCREMENT,
|
|
12
|
+
`project_id` INT NULL,
|
|
13
|
+
`db_name` VARCHAR(32) NOT NULL COMMENT 'The name for the database as displayed by our internal systems.',
|
|
14
|
+
`host` VARCHAR(255) NOT NULL COMMENT 'The URL of the server (through SSH connection -- IE: username.abc123.eu-west-1.rds.amazonaws.com ).',
|
|
15
|
+
`user` TEXT NOT NULL COMMENT 'The username used to connect to the server.',
|
|
16
|
+
`password` TEXT NOT NULL COMMENT 'The password used to connect to the server.',
|
|
17
|
+
`environment` VARCHAR(11) NOT NULL COMMENT 'The environment for which this database will apply to.',
|
|
18
|
+
`schema_type` VARCHAR(6) NOT NULL COMMENT 'The schema type (IE: config, common or app).',
|
|
19
|
+
`jdbc_url` VARCHAR(255) NOT NULL COMMENT 'The URL of the server (through Java JDBC connection -- IE: jdbc:mysql://abc123.com:3306 ).',
|
|
20
|
+
PRIMARY KEY (`id`),
|
|
21
|
+
UNIQUE INDEX `config_db_db_name_uniq_idx` (`db_name`),
|
|
22
|
+
INDEX `config_db_environment_idx` (`environment`)
|
|
23
|
+
) ENGINE = InnoDB;
|
|
24
|
+
|
|
25
|
+
-- Create db_configuration table
|
|
26
|
+
CREATE TABLE `db_configuration` (
|
|
27
|
+
`id` INT NOT NULL AUTO_INCREMENT,
|
|
28
|
+
`db_configuration_name` VARCHAR(32) NOT NULL COMMENT 'The name for this configuration.',
|
|
29
|
+
`pool_max_size` INT NOT NULL COMMENT 'The maximum size of the connection pool.',
|
|
30
|
+
PRIMARY KEY (`id`),
|
|
31
|
+
UNIQUE INDEX `config_db_configuration_db_configuration_name_uniq_idx` (`db_configuration_name`)
|
|
32
|
+
) ENGINE = InnoDB;
|
|
33
|
+
|
|
34
|
+
-- Create db_configuration_property table
|
|
35
|
+
CREATE TABLE `db_configuration_property` (
|
|
36
|
+
`id` INT NOT NULL AUTO_INCREMENT,
|
|
37
|
+
`db_configuration_id` INT NOT NULL,
|
|
38
|
+
`key` VARCHAR(64) NOT NULL COMMENT 'Database property key (IE: charSet)',
|
|
39
|
+
`value` VARCHAR(128) NOT NULL COMMENT 'Database property value (IE: UTF-8)',
|
|
40
|
+
PRIMARY KEY (`id`)
|
|
41
|
+
) ENGINE = InnoDB;
|
|
42
|
+
|
|
43
|
+
-- Create profile table
|
|
44
|
+
CREATE TABLE `profile` (
|
|
45
|
+
`id` INT NOT NULL AUTO_INCREMENT,
|
|
46
|
+
`project_id` INT NOT NULL,
|
|
47
|
+
`profile_name` VARCHAR(32) NOT NULL COMMENT 'The name of the profile (IE: localhost, us-west-1, etc.)',
|
|
48
|
+
`environment` VARCHAR(11) NOT NULL COMMENT 'The environment in which the application will run under this profile.',
|
|
49
|
+
`timezone` VARCHAR(64) NOT NULL COMMENT 'The timezone in which associated application will run.',
|
|
50
|
+
`message_queue_host` VARCHAR(255) NOT NULL COMMENT 'The message queue URL.',
|
|
51
|
+
`slack_log_url` VARCHAR(255) NOT NULL COMMENT 'The Slack Log channel webhook URL.',
|
|
52
|
+
`slack_error_url` VARCHAR(255) NOT NULL COMMENT 'The Slack Error channel webhook URL.',
|
|
53
|
+
`authorization_header` TEXT NOT NULL COMMENT 'The Authorization Header used for internal API calls.',
|
|
54
|
+
PRIMARY KEY (`id`),
|
|
55
|
+
INDEX `config_profile_profile_name_idx` (`profile_name`),
|
|
56
|
+
INDEX `config_profile_environment_idx` (`environment`)
|
|
57
|
+
) ENGINE = InnoDB;
|
|
58
|
+
|
|
59
|
+
-- Create profile_api table
|
|
60
|
+
CREATE TABLE `profile_api` (
|
|
61
|
+
`id` INT NOT NULL AUTO_INCREMENT,
|
|
62
|
+
`profile_id` INT NOT NULL,
|
|
63
|
+
`common_db_id` INT NOT NULL,
|
|
64
|
+
`common_db_configuration_id` INT NOT NULL,
|
|
65
|
+
PRIMARY KEY (`id`)
|
|
66
|
+
) ENGINE = InnoDB;
|
|
67
|
+
|
|
68
|
+
-- Create profile_cron table
|
|
69
|
+
CREATE TABLE `profile_cron` (
|
|
70
|
+
`id` INT NOT NULL AUTO_INCREMENT,
|
|
71
|
+
`profile_id` INT NOT NULL,
|
|
72
|
+
PRIMARY KEY (`id`)
|
|
73
|
+
) ENGINE = InnoDB;
|
|
74
|
+
|
|
75
|
+
-- Create profile_worker table
|
|
76
|
+
CREATE TABLE `profile_worker` (
|
|
77
|
+
`id` INT NOT NULL AUTO_INCREMENT,
|
|
78
|
+
`profile_id` INT NOT NULL,
|
|
79
|
+
PRIMARY KEY (`id`)
|
|
80
|
+
) ENGINE = InnoDB;
|
|
81
|
+
|
|
82
|
+
-- Create project table
|
|
83
|
+
CREATE TABLE `project` (
|
|
84
|
+
`id` INT NOT NULL AUTO_INCREMENT,
|
|
85
|
+
`client_id` INT NOT NULL,
|
|
86
|
+
`project_name` VARCHAR(64) NOT NULL COMMENT 'Must be all lowercase & hyphen separated (IE: go-eat)',
|
|
87
|
+
`project_name_pascal_case` VARCHAR(64) NOT NULL COMMENT 'Must be camel-cased (IE: GoEat)',
|
|
88
|
+
`project_title` VARCHAR(128) NOT NULL COMMENT 'The way you want the project title/name to be displayed in UIs (IE: Go-EAT)',
|
|
89
|
+
`domain` VARCHAR(128) NOT NULL COMMENT 'The domain where the project will be hosted (IE: com, co.uk, app). This combined with the {project:project_name:Project name} should make up the public URL.',
|
|
90
|
+
`alias` VARCHAR(8) NOT NULL COMMENT 'A short alias for the project, mainly for use in CLI commands (IE: ge)',
|
|
91
|
+
`port_range` VARCHAR(12) NOT NULL COMMENT 'Ports reserved for this project, must be in sections of 20 (IE: 6000-6019)',
|
|
92
|
+
`encryption_key` VARCHAR(64) NOT NULL COMMENT 'Encryption Key for encrypting/decrypting sensitive data. This can never change!',
|
|
93
|
+
`encryption_iv` VARCHAR(64) NOT NULL COMMENT 'Encryption IV for encrypting/decrypting sensitive data. This can never change!',
|
|
94
|
+
PRIMARY KEY (`id`),
|
|
95
|
+
UNIQUE INDEX `config_project_project_name_uniq_idx` (`project_name`),
|
|
96
|
+
UNIQUE INDEX `config_project_alias_uniq_idx` (`alias`)
|
|
97
|
+
) ENGINE = InnoDB;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
-- Add mock_nested_multiple FKs
|
|
2
|
+
ALTER TABLE `mock_nested_multiple`
|
|
3
|
+
ADD CONSTRAINT `fk_1`
|
|
4
|
+
FOREIGN KEY (`mock_id`)
|
|
5
|
+
REFERENCES `mock` (`id`)
|
|
6
|
+
ON DELETE RESTRICT
|
|
7
|
+
ON UPDATE CASCADE;
|
|
8
|
+
|
|
9
|
+
-- Add mock_nested_single FKs
|
|
10
|
+
ALTER TABLE `mock_nested_single`
|
|
11
|
+
ADD CONSTRAINT `fk_2`
|
|
12
|
+
FOREIGN KEY (`mock_id`)
|
|
13
|
+
REFERENCES `mock` (`id`)
|
|
14
|
+
ON DELETE RESTRICT
|
|
15
|
+
ON UPDATE CASCADE;
|
|
16
|
+
|
|
17
|
+
-- Add mock_nested_single_super_super_deep FKs
|
|
18
|
+
ALTER TABLE `mock_nested_single_super_super_deep`
|
|
19
|
+
ADD CONSTRAINT `fk_3`
|
|
20
|
+
FOREIGN KEY (`mock_nested_single_id`)
|
|
21
|
+
REFERENCES `mock_nested_single` (`id`)
|
|
22
|
+
ON DELETE RESTRICT
|
|
23
|
+
ON UPDATE CASCADE;
|
|
24
|
+
|
|
25
|
+
ALTER TABLE `mock_to_mock_nested_linked_link`
|
|
26
|
+
ADD INDEX `idx_1` (`mock_id` DESC),
|
|
27
|
+
ADD INDEX `idx_2` (`mock_nested_linked_id` DESC),
|
|
28
|
+
ADD UNIQUE INDEX `mock_to_mock_nested_linked_uniq_idx` (`mock_id` DESC, `mock_nested_linked_id` DESC),
|
|
29
|
+
ADD CONSTRAINT `fk_4`
|
|
30
|
+
FOREIGN KEY (`mock_id`)
|
|
31
|
+
REFERENCES `mock` (`id`)
|
|
32
|
+
ON DELETE RESTRICT
|
|
33
|
+
ON UPDATE RESTRICT,
|
|
34
|
+
ADD CONSTRAINT `fk_5`
|
|
35
|
+
FOREIGN KEY (`mock_nested_linked_id`)
|
|
36
|
+
REFERENCES `mock_nested_linked` (`id`)
|
|
37
|
+
ON DELETE RESTRICT
|
|
38
|
+
ON UPDATE RESTRICT;
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
-- Create mock table
|
|
2
|
+
CREATE TABLE `mock` (
|
|
3
|
+
`id` INT NOT NULL AUTO_INCREMENT,
|
|
4
|
+
`bool` TINYINT(1) NOT NULL DEFAULT '1',
|
|
5
|
+
`mock_date` DATE NOT NULL DEFAULT '0000-01-01',
|
|
6
|
+
`mock_datetime` DATETIME(3) NOT NULL DEFAULT '0000-01-01 00:00:00',
|
|
7
|
+
`decimal` DECIMAL(13,2) NOT NULL,
|
|
8
|
+
`enumeration` VARCHAR(9) NOT NULL COMMENT '[VALUE_ONE|VALUE_TWO]',
|
|
9
|
+
`integer` INT NOT NULL,
|
|
10
|
+
`integer_tiny` TINYINT NOT NULL,
|
|
11
|
+
`integer_small` SMALLINT NOT NULL,
|
|
12
|
+
`integer_big` BIGINT NOT NULL,
|
|
13
|
+
`text` TEXT NOT NULL COMMENT 'This is a text field.',
|
|
14
|
+
`text_long` LONGTEXT NOT NULL,
|
|
15
|
+
`text_encrypted` TEXT NOT NULL,
|
|
16
|
+
`varchar` VARCHAR(10) NULL,
|
|
17
|
+
PRIMARY KEY (`id`),
|
|
18
|
+
FULLTEXT `mock_mock_text_idx_fulltext` (`text`),
|
|
19
|
+
FULLTEXT `mock_mock_text_long_idx_fulltext` (`text_long`),
|
|
20
|
+
FULLTEXT `mock_mock_text_encrypted_idx_fulltext` (`text_encrypted`),
|
|
21
|
+
INDEX `mock_mock_enumeration_idx` (`enumeration`),
|
|
22
|
+
INDEX `mock_mock_integer_idx` (`integer`)
|
|
23
|
+
) ENGINE = InnoDB;
|
|
24
|
+
|
|
25
|
+
-- Create mock_nested_linked table
|
|
26
|
+
CREATE TABLE `mock_nested_linked` (
|
|
27
|
+
`id` INT NOT NULL AUTO_INCREMENT,
|
|
28
|
+
`bool` TINYINT(1) NOT NULL DEFAULT '1',
|
|
29
|
+
`mock_date` DATE NOT NULL DEFAULT '0000-01-01',
|
|
30
|
+
`mock_datetime` DATETIME(3) NOT NULL DEFAULT '0000-01-01 00:00:00',
|
|
31
|
+
`decimal` DECIMAL(13,2) NOT NULL,
|
|
32
|
+
`integer` INT NOT NULL,
|
|
33
|
+
`integer_tiny` TINYINT NOT NULL,
|
|
34
|
+
`integer_small` SMALLINT NOT NULL,
|
|
35
|
+
`integer_big` BIGINT NOT NULL,
|
|
36
|
+
`text` TEXT NOT NULL,
|
|
37
|
+
`text_long` LONGTEXT NOT NULL,
|
|
38
|
+
`varchar` VARCHAR(10) NOT NULL,
|
|
39
|
+
PRIMARY KEY (`id`),
|
|
40
|
+
FULLTEXT `mock_mock_nested_linked_text_idx_fulltext` (`text`),
|
|
41
|
+
FULLTEXT `mock_mock_nested_linked_text_long_idx_fulltext` (`text_long`)
|
|
42
|
+
) ENGINE = InnoDB;
|
|
43
|
+
|
|
44
|
+
-- Create mock_nested_multiple table
|
|
45
|
+
CREATE TABLE `mock_nested_multiple` (
|
|
46
|
+
`id` INT NOT NULL AUTO_INCREMENT,
|
|
47
|
+
`bool` TINYINT(1) NOT NULL DEFAULT '1',
|
|
48
|
+
`mock_id` INT NULL,
|
|
49
|
+
`mock_date` DATE NOT NULL DEFAULT '0000-01-01',
|
|
50
|
+
`mock_datetime` DATETIME(3) NOT NULL DEFAULT '0000-01-01 00:00:00',
|
|
51
|
+
`decimal` DECIMAL(13,2) NOT NULL,
|
|
52
|
+
`integer` INT NOT NULL,
|
|
53
|
+
`integer_tiny` TINYINT NOT NULL,
|
|
54
|
+
`integer_small` SMALLINT NOT NULL,
|
|
55
|
+
`integer_big` BIGINT NOT NULL,
|
|
56
|
+
`text` TEXT NOT NULL,
|
|
57
|
+
`text_long` LONGTEXT NOT NULL,
|
|
58
|
+
`varchar` VARCHAR(10) NOT NULL,
|
|
59
|
+
PRIMARY KEY (`id`),
|
|
60
|
+
FULLTEXT `mock_mock_nested_multiple_text_idx_fulltext` (`text`),
|
|
61
|
+
FULLTEXT `mock_mock_nested_multiple_text_long_idx_fulltext` (`text_long`)
|
|
62
|
+
) ENGINE = InnoDB;
|
|
63
|
+
|
|
64
|
+
-- Create mock_nested_single table
|
|
65
|
+
CREATE TABLE `mock_nested_single` (
|
|
66
|
+
`id` INT NOT NULL AUTO_INCREMENT,
|
|
67
|
+
`bool` TINYINT(1) NOT NULL DEFAULT '1',
|
|
68
|
+
`mock_id` INT NULL,
|
|
69
|
+
`mock_date` DATE NOT NULL DEFAULT '0000-01-01',
|
|
70
|
+
`mock_datetime` DATETIME(3) NOT NULL DEFAULT '0000-01-01 00:00:00',
|
|
71
|
+
`decimal` DECIMAL(13,2) NOT NULL,
|
|
72
|
+
`integer` INT NOT NULL,
|
|
73
|
+
`integer_tiny` TINYINT NOT NULL,
|
|
74
|
+
`integer_small` SMALLINT NOT NULL,
|
|
75
|
+
`integer_big` BIGINT NOT NULL,
|
|
76
|
+
`text` TEXT NOT NULL,
|
|
77
|
+
`text_long` LONGTEXT NOT NULL,
|
|
78
|
+
`text_encrypted` TEXT NOT NULL,
|
|
79
|
+
`varchar` VARCHAR(10) NOT NULL,
|
|
80
|
+
`unique_field` VARCHAR(64) NOT NULL,
|
|
81
|
+
PRIMARY KEY (`id`),
|
|
82
|
+
FULLTEXT `mock_mock_nested_single_text_idx_fulltext` (`text`),
|
|
83
|
+
FULLTEXT `mock_mock_nested_single_text_long_idx_fulltext` (`text_long`),
|
|
84
|
+
FULLTEXT `mock_mock_nested_single_text_encrypted_idx_fulltext` (`text_encrypted`)
|
|
85
|
+
) ENGINE = InnoDB;
|
|
86
|
+
|
|
87
|
+
-- Create mock_nested_single_super_super_deep table
|
|
88
|
+
CREATE TABLE `mock_nested_single_super_super_deep` (
|
|
89
|
+
`id` INT NOT NULL AUTO_INCREMENT,
|
|
90
|
+
`bool` TINYINT(1) NOT NULL DEFAULT '1',
|
|
91
|
+
`mock_nested_single_id` INT NULL,
|
|
92
|
+
PRIMARY KEY (`id`)
|
|
93
|
+
) ENGINE = InnoDB;
|
|
94
|
+
-- Add table to link 'mock' with 'mock_nested_linked'
|
|
95
|
+
CREATE TABLE `mock_to_mock_nested_linked_link` (
|
|
96
|
+
`mock_id` INT NOT NULL,
|
|
97
|
+
`mock_nested_linked_id` INT NOT NULL
|
|
98
|
+
) ENGINE = InnoDB;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
INSERT IGNORE INTO `blufin-master`.db (
|
|
2
|
+
`id`,
|
|
3
|
+
`project_id`, -- FK: config.project.id
|
|
4
|
+
`db_name`,
|
|
5
|
+
`host`,
|
|
6
|
+
`user`,
|
|
7
|
+
`password`,
|
|
8
|
+
`environment`,
|
|
9
|
+
`schema_type`,
|
|
10
|
+
`jdbc_url`
|
|
11
|
+
) VALUES (
|
|
12
|
+
0,
|
|
13
|
+
0, -- FK: config.project.id
|
|
14
|
+
'DB_NAME',
|
|
15
|
+
'HOST',
|
|
16
|
+
'USER',
|
|
17
|
+
'PASSWORD',
|
|
18
|
+
'LOCAL|DEVELOPMENT|SANDBOX|STAGING|PRODUCTION',
|
|
19
|
+
'APP|CONFIG|COMMON',
|
|
20
|
+
'JDBC_URL'
|
|
21
|
+
);
|