Changeset 25033 in main
- Timestamp:
- 04/12/22 23:55:04 (4 months ago)
- Location:
- trunk/db/src/main/scripts/mysql/migrate
- Files:
-
- 1 added
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/db/src/main/scripts/mysql/migrate/0_data-cleanup.sql
r25032 r25033 1 1 /* General cleanup - adopter cleanup will likely have removed much of these */ 2 2 3 /* Use collate so that character set data can be compared. 4 Get rid of cats and series that are not used in views or have any values. 3 /* Older cleanup scripts that did not use the Kim/Lois temp tables needed to 4 remove orphaned DSC and DSS. These tables are not used in that way any more 5 and thus don't need to clean up as these tables are deleted after migration 6 has been complteted. 7 8 NOTE: When mixing myisam tables need to use "collate" so that character set 9 data can be compared. If using .sql exports then not needed. 5 10 */ 6 delete from DATASET_CATEGORY where NAME collate SQL_Latin1_General_CP1_CI_AS not in (select distinct DATASET_CATEGORY_NAME from INDICATOR_VIEW);7 delete from DATASET_CATEGORY where NAME collate SQL_Latin1_General_CP1_CI_AS not in (select distinct DATASET_CATEGORY_NAME from DATASET_CATEGORY_VALUE);8 9 delete from DATASET_SERIES where NAME collate SQL_Latin1_General_CP1_CI_AS not in (select distinct DATASET_SERIES_NAME from INDICATOR_VIEW);10 delete from DATASET_SERIES where NAME collate SQL_Latin1_General_CP1_CI_AS not in (select distinct DATASET_SERIES_NAME from DATASET_SERIES_VALUE);11 12 delete from DATASET_CATEGORY_VALUE where DATASET_CATEGORY_NAME is null or DATASET_CATEGORY_NAME collate SQL_Latin1_General_CP1_CI_AS not in (select NAME from DATASET_CATEGORY);13 delete from DATASET_SERIES_VALUE where DATASET_SERIES_NAME is null or DATASET_SERIES_NAME collate SQL_Latin1_General_CP1_CI_AS not in (select NAME from DATASET_SERIES);14 15 16 /* REMOVE IPs that don't have any views */17 delete from INDICATOR where NAME collate SQL_Latin1_General_CP1_CI_AS not in (select INDICATOR_NAME from INDICATOR_VIEW);18 11 19 12 20 13 /* REMOVE ORPHANED IPVs: delete invalid or orphaned IV records */ 21 delete from INDICATOR_VIEW where INDICATOR_NAME collate SQL_Latin1_General_CP1_CI_ASnot in (select NAME from INDICATOR);14 delete from INDICATOR_VIEW where INDICATOR_NAME not in (select NAME from INDICATOR); 22 15 delete from INDICATOR_VIEW 23 16 where DATASET_CATEGORY_NAME is null 24 or DATASET_CATEGORY_NAME collate SQL_Latin1_General_CP1_CI_ASnot in (select NAME from DATASET_CATEGORY)25 or DATASET_SERIES_NAME collate SQL_Latin1_General_CP1_CI_ASnot in (select NAME from DATASET_SERIES)17 or DATASET_CATEGORY_NAME not in (select NAME from DATASET_CATEGORY) 18 or DATASET_SERIES_NAME not in (select NAME from DATASET_SERIES) 26 19 ; 27 28 /* REMOVE IVs that don't have any IVVs */29 delete from INDICATOR_VIEW30 where NAME collate SQL_Latin1_General_CP1_CI_AS not in (select distinct INDICATOR_VIEW_NAME from INDICATOR_VIEW_VALUE)31 ;32 33 20 34 21 /* REMOVE ORPHANED IVV: … … 40 27 */ 41 28 delete from INDICATOR_VIEW_VALUE 42 where INDICATOR_VIEW_NAME collate SQL_Latin1_General_CP1_CI_ASnot in (select NAME from INDICATOR_VIEW)29 where INDICATOR_VIEW_NAME not in (select NAME from INDICATOR_VIEW) 43 30 ; 44 31 45 32 delete from INDICATOR_VIEW_VALUE 46 33 where DATASET_CATEGORY_NAME is null 47 or DATASET_CATEGORY_NAME collate SQL_Latin1_General_CP1_CI_AS!= (select DATASET_CATEGORY_NAME from INDICATOR_VIEW where NAME = INDICATOR_VIEW_NAME)48 or DATASET_SERIES_NAME collate SQL_Latin1_General_CP1_CI_AS!= (select DATASET_SERIES_NAME from INDICATOR_VIEW where NAME = INDICATOR_VIEW_NAME)49 or DATASET_SERIES_VALUE collate SQL_Latin1_General_CP1_CI_ASnot in (select VALUE from DATASET_SERIES_VALUE dsv where dsv.DATASET_SERIES_NAME = INDICATOR_VIEW_VALUE.DATASET_SERIES_NAME)50 or DATASET_CATEGORY_VALUE collate SQL_Latin1_General_CP1_CI_ASnot in (select VALUE from DATASET_CATEGORY_VALUE dcv where dcv.DATASET_CATEGORY_NAME = INDICATOR_VIEW_VALUE.DATASET_CATEGORY_NAME)34 or DATASET_CATEGORY_NAME != (select DATASET_CATEGORY_NAME from INDICATOR_VIEW where NAME = INDICATOR_VIEW_NAME) 35 or DATASET_SERIES_NAME != (select DATASET_SERIES_NAME from INDICATOR_VIEW where NAME = INDICATOR_VIEW_NAME) 36 or DATASET_SERIES_VALUE not in (select VALUE from DATASET_SERIES_VALUE dsv where dsv.DATASET_SERIES_NAME = INDICATOR_VIEW_VALUE.DATASET_SERIES_NAME) 37 or DATASET_CATEGORY_VALUE not in (select VALUE from DATASET_CATEGORY_VALUE dcv where dcv.DATASET_CATEGORY_NAME = INDICATOR_VIEW_VALUE.DATASET_CATEGORY_NAME) 51 38 ; 52 39 … … 55 42 NOTE: The DS to IP really isn't used. DS to IPV are the key tables. 56 43 */ 57 delete from DATA_SOURCE_TO_INDICATOR where INDICATOR_NAME collate SQL_Latin1_General_CP1_CI_AS not in (select NAME from INDICATOR) or INDICATOR_NAME is null; 58 delete from DATA_SOURCE_TO_INDICATOR where DATA_SOURCE_NAME collate SQL_Latin1_General_CP1_CI_AS not in (select NAME from DATA_SOURCE) or DATA_SOURCE_NAME is null; 59 delete from DATA_SOURCE_TO_INDICATOR_VIEW where INDICATOR_VIEW_NAME collate SQL_Latin1_General_CP1_CI_AS not in (select distinct NAME from INDICATOR_VIEW) or INDICATOR_VIEW_NAME is null; 60 delete from DATA_SOURCE_TO_INDICATOR_VIEW where DATA_SOURCE_NAME collate SQL_Latin1_General_CP1_CI_AS not in (select NAME from DATA_SOURCE) or DATA_SOURCE_NAME is null; 61 62 /* unused DSs */ 63 delete from DATA_SOURCE where 64 NAME collate SQL_Latin1_General_CP1_CI_AS not in (select distinct DATA_SOURCE_NAME from DATA_SOURCE_TO_INDICATOR_VIEW) 65 and 66 NAME collate SQL_Latin1_General_CP1_CI_AS not in (select distinct DATA_SOURCE_NAME from DATA_SOURCE_TO_INDICATOR) 67 ; 68 44 delete from DATA_SOURCE_TO_INDICATOR where INDICATOR_NAME not in (select NAME from INDICATOR) or INDICATOR_NAME is null; 45 delete from DATA_SOURCE_TO_INDICATOR where DATA_SOURCE_NAME not in (select NAME from DATA_SOURCE) or DATA_SOURCE_NAME is null; 46 delete from DATA_SOURCE_TO_INDICATOR_VIEW where INDICATOR_VIEW_NAME not in (select distinct NAME from INDICATOR_VIEW) or INDICATOR_VIEW_NAME is null; 47 delete from DATA_SOURCE_TO_INDICATOR_VIEW where DATA_SOURCE_NAME not in (select NAME from DATA_SOURCE) or DATA_SOURCE_NAME is null; 69 48 70 49 71 50 /* set the new v3 datasource.title column */ 72 51 update DATA_SOURCE set TITLE = substr(TEXT, 1, 100); 73 74 75 76 77 78 /* IMPORTANT NOTE: Can't do any orphaned DS to IVV cleanup here because the new79 intersection table is using the new v3 IPV name and the IP/IPV rename has80 not been ran yet. This cleanup will need to be ran post migration.81 */82 83 52 84 53 … … 141 110 142 111 /*------------------------------ END OF FILE ------------------------------*/ 143 -
trunk/db/src/main/scripts/mysql/migrate/1_data-ip_ipv_rename.sql
r25029 r25033 25 25 update INDICATOR set DEFAULT_INDICATOR_VIEW_NAME = ifnull( (select NAME3 from TMP_IP23NAME_IP3NAME where DEFAULT_INDICATOR_VIEW_NAME = NAME2), DEFAULT_INDICATOR_VIEW_NAME); 26 26 27 update INDICATOR_TO_INDICATOR 28 update INDICATOR_TO_INDICATOR 27 update INDICATOR_TO_INDICATOR set INDICATOR_NAME = ifnull( (select NAME3 from TMP_IP23NAME_IP3NAME where INDICATOR_NAME = NAME2) , INDICATOR_NAME); 28 update INDICATOR_TO_INDICATOR set RELATED_INDICATOR_NAME = ifnull( (select NAME3 from TMP_IP23NAME_IP3NAME where RELATED_INDICATOR_NAME = NAME2), RELATED_INDICATOR_NAME); 29 29 30 update INDICATOR_TO_RELATION 30 update INDICATOR_TO_RELATION set INDICATOR_NAME = ifnull( (select NAME3 from TMP_IP23NAME_IP3NAME where INDICATOR_NAME = NAME2), INDICATOR_NAME); 31 31 32 update INDICATOR_TO_INDICATOR_SET set INDICATOR_NAME 32 update INDICATOR_TO_INDICATOR_SET set INDICATOR_NAME = ifnull( (select NAME3 from TMP_IP23NAME_IP3NAME where INDICATOR_NAME = NAME2), INDICATOR_NAME); 33 33 34 update USER_TO_INDICATOR 34 update USER_TO_INDICATOR set INDICATOR_NAME = ifnull( (select NAME3 from TMP_IP23NAME_IP3NAME where INDICATOR_NAME = NAME2), INDICATOR_NAME); 35 35 36 36 … … 64 64 select * from INDICATOR_VIEW where ACTIVE_FLAG = 'x' and not exists (select 1 from INDICATOR_VIEW_VALUE where INDICATOR_VIEW_NAME = NAME and ACTIVE_FLAG = 'x'); 65 65 66 67 68 69 70 71 72 split:73 4 columns 2.3 ip name to new 3 ip name, same for views...74 75 insert into INDICATOR76 NAME, DESCRIPTION, DEFAULT_INDICATOR_VIEW_NAME,77 TITLE, CONCISE_TITLE,78 DEFINITION, NUMERATOR, DENOMINATOR, DATA_NOTE, DATA_ISSUES, DATA_AS_OF_DATE,79 WHY_IMPORTANT, HEALTHY_PEOPLE_OBJECTIVE_NAME, OTHER_OBJECTIVE, EVIDENCE_BASED_PRACTICES,80 HOW_DOING, HOW_WE_COMPARE, WHAT_DOING, OTHER_PROGRAM_INFORMATION,81 MORE_RESOURCES_TITLE, MORE_RESOURCES, SERVICES_AVAILABLE_TO_PUBLIC,82 ORG_UNIT_NAME, OWNER_USER_ID, STATUS_CODE, STATUS_DATE, PUBLISHED_DATE,83 DEMOGRAPHIC_FLAG, NOT_SELECTABLE_FLAG, FOOTNOTE_REFERENCES,84 NOTE, SORT_ORDER, ACTIVE_FLAG, MODIFIED_DATE, MODIFIED_DESCRIPTION85 select t.NEW_NAME, DESCRIPTION, DEFAULT_INDICATOR_VIEW_NAME,86 TITLE, CONCISE_TITLE,87 DEFINITION, NUMERATOR, DENOMINATOR, DATA_NOTE, DATA_ISSUES, DATA_AS_OF_DATE,88 WHY_IMPORTANT, HEALTHY_PEOPLE_OBJECTIVE_NAME, OTHER_OBJECTIVE, EVIDENCE_BASED_PRACTICES,89 HOW_DOING, HOW_WE_COMPARE, WHAT_DOING, OTHER_PROGRAM_INFORMATION,90 MORE_RESOURCES_TITLE, MORE_RESOURCES, SERVICES_AVAILABLE_TO_PUBLIC,91 ORG_UNIT_NAME, OWNER_USER_ID, STATUS_CODE, STATUS_DATE, PUBLISHED_DATE,92 DEMOGRAPHIC_FLAG, NOT_SELECTABLE_FLAG, FOOTNOTE_REFERENCES,93 NOTE, SORT_ORDER, ACTIVE_FLAG, MODIFIED_DATE, MODIFIED_DESCRIPTION94 from INDICATOR i, TMP_SPLIT_IP t95 where i.NAME = t.CURRENT_NAME96 ;97 98 insert into INDICATOR_VIEW99 NAME, INDICATOR_NAME, DESCRIPTION, TITLE, SUB_TITLE,100 PERIOD_TITLE, Y_TITLE,101 DATASET_SERIES_NAME, DATASET_CATEGORY_NAME,102 PERIOD_DIMENSION_NAME, SERIES_DIMENSION_NAME, CATEGORY_DIMENSION_NAME, CONSTANT_DIMENSION_NAME103 MAP_DIMENSION_NAME,104 CHART_NAME, CHART_NARRATIVE, CHART_TITLE_OVERRIDE,105 MAP_NAME, MAP_NARRATIVE, MAP_TITLE_OVERRIDE,106 VALUE_TYPE_NAME, MEASURE_NAME, MEASURE_TITLE_OVERRIDE,107 TARGET_VALUE,108 DATA_NOTE, NUMERATOR_OVERRIDE, DENOMINATOR_OVERRIDE109 EXTERNAL_DATAVIZ_TYPE, EXTERNAL_DATAVIZ_TITLE, EXTERNAL_DATAVIZ_VALUE, EXTERNAL_DATAVIZ_NARRATIVE,110 EXTERNAL_CONTENT_URL, EXTERNAL_CONTENT_SELECTOR, EXTERNAL_CONTENT_DEST_SELECTOR,111 VIEW_TEMPLATE_NAME,112 NOTE, SORT_ORDER, ACTIVE_FLAG, MODIFIED_DATE, MODIFIED_DESCRIPTION113 select tmp.NEW_NAME, xyz114 from INDICATOR_VIEW iv, TMP_SPLIT_IP t115 where iv.NAME = CURRENT_NAME116 ;117 118 insert into INDICATOR_VIEW_VALUE119 NAME, INDICATOR_NAME, DESCRIPTION, TITLE, SUB_TITLE,120 PERIOD_TITLE, Y_TITLE,121 DATASET_SERIES_NAME, DATASET_CATEGORY_NAME,122 PERIOD_DIMENSION_NAME, SERIES_DIMENSION_NAME, CATEGORY_DIMENSION_NAME, CONSTANT_DIMENSION_NAME123 MAP_DIMENSION_NAME,124 CHART_NAME, CHART_NARRATIVE, CHART_TITLE_OVERRIDE,125 MAP_NAME, MAP_NARRATIVE, MAP_TITLE_OVERRIDE,126 VALUE_TYPE_NAME, MEASURE_NAME, MEASURE_TITLE_OVERRIDE,127 TARGET_VALUE,128 DATA_NOTE, NUMERATOR_OVERRIDE, DENOMINATOR_OVERRIDE129 EXTERNAL_DATAVIZ_TYPE, EXTERNAL_DATAVIZ_TITLE, EXTERNAL_DATAVIZ_VALUE, EXTERNAL_DATAVIZ_NARRATIVE,130 EXTERNAL_CONTENT_URL, EXTERNAL_CONTENT_SELECTOR, EXTERNAL_CONTENT_DEST_SELECTOR,131 VIEW_TEMPLATE_NAME,132 NOTE, SORT_ORDER, ACTIVE_FLAG, MODIFIED_DATE, MODIFIED_DESCRIPTION133 select tmp.NEW_NAME, xyz134 from INDICATOR_VIEW_VALUE ivv, TMP_SPLIT_IP t135 where ivv.INDICATOR_VIEWNAME = CURRENT_NAME136 ;137 138 139 indicator_to_relation140 INDICATOR_NAME, RELATION_NAME, TEXT141 142 indicator_to_indicator_set143 INDICATOR_NAME, INDICATOR_SET_NAME, SORT_ORDER144 145 indicator_to_indicator146 INDICATOR_NAME, RELATION_NAME, RELATED_INDICATOR_NAME, SORT_ORDER147 148 data_source_to_indicator_view149 DATA_SOURCE_NAME, INDICATOR_VIEW_NAME, SORT_ORDER150 151 user_to_indicator152 INDICATOR_NAME, USER_ID153 154 155 66 /*------------------------------ END OF FILE ------------------------------*/ -
trunk/db/src/main/scripts/mysql/migrate/4_data-iv_dimensions.sql
r25032 r25033 12 12 select * from TMP_IPV_CONSTANT_DIM_NAME; 13 13 14 15 /* Clean out new IV dim names and populate using above mappings */16 update INDICATOR_VIEW17 set CATEGORY_DIMENSION_NAME = null,18 SERIES_DIMENSION_NAME = null,19 CONSTANT_DIMENSION_NAME = null,20 PERIOD_DIMENSION_NAME = '',21 MAP_DIMENSION_NAME = null22 ;23 14 24 15 /* Most of these will be correct but some are split into several new dims which -
trunk/db/src/main/scripts/mysql/migrate/tab_c-misc.sql
r25032 r25033 1 /* New v3 validation and intersection tables */1 /* Misc new v3 validation and intersection tables */ 2 2 3 3 create table MEASURE( … … 17 17 primary key (NAME) 18 18 ); 19 19 20 create table VALUE_ATTRIBUTE( 20 21 NAME varchar (100) not null, … … 31 32 primary key (NAME) 32 33 ); 34 33 35 create table ANCILLARY_VALUE( 34 36 NAME varchar (100) not null, … … 46 48 primary key (NAME) 47 49 ); 50 48 51 49 52 create table DIMENSION( … … 83 86 ); 84 87 88 85 89 create table TOPIC( 86 90 NAME varchar (100) not null, … … 106 110 primary key (INDICATOR_NAME, TOPIC_NAME) 107 111 ); 112 108 113 109 114 /* subset of datasets for an IPV based on the assoc IP name and IPV Measure */ … … 135 140 unique (INDICATOR_VIEW_NAME, DIMENSION_NAME, DIMENSION_VALUE) 136 141 ); 142 137 143 138 144 create table INDICATOR_SET( -
trunk/db/src/main/scripts/mysql/migrate/tab_c-tmp.sql
r25032 r25033 92 92 all NAMEs are v3 names. 93 93 */ 94 drop table if exists TMP_SPLIT_IP; 95 create table if not exists TMP_SPLIT_IP_OLD_NAME_IP_NEW_NAME ( 96 CURRENT_NAME varchar (100) not null, 97 NEW_NAME varchar (100) not null, 98 constraint TMP_SPLIT_IP_PK 99 primary key (CURRENT_NAME, NEW_NAME) 94 drop table if exists TMP_SPLIT_IP_IPV; 95 create table if not exists TMP_SPLIT_IP_IPV ( 96 SOURCE_IP_NAME varchar (100) not null, 97 SOURCE_IPV_NAME varchar (100) not null, 98 NEW_IP_NAME varchar (100) not null, 99 NEW_IPV_NAME varchar (100) not null, 100 constraint TMP_SPLIT_IP_IPV_PK 101 primary key (SOURCE_IPV_NAME, NEW_IPV_NAME) 100 102 ); 101 103 -
trunk/db/src/main/scripts/mysql/migrate/update.sql
r25032 r25033 114 114 115 115 116 /* ---------------- Step 1.x - Prep 2.3 Migration */ 117 use migration; 116 /* ---------------- Step 1.x - Prep 2.3 Migration - Get 2.3 DB */ 118 117 119 118 /* run adopter specific data cleanup - remove orphaned records */ … … 137 136 138 137 139 /* ---------------- Step 2.x - Manual Migration Data Updates */140 /* Kim will populate specific validation tables :138 /* ---------------- Step 2.x - Manual Migration Data Updates - Send to Kim */ 139 /* Kim will populate specific validation tables and mod IV and IVV series/const: 141 140 value_type 142 141 measure … … 147 146 148 147 149 /* ---------------- Step 3.x - Run Migration Scripts */ 150 /* 151 remove 99 and 999 SO IP and IPVs, 152 unused and orphanded I, IV, IVV, 153 DSC DSCV, DSS, DSSV and few misc updates 154 */ 155 0_data-cleanup.sql 148 /* ---------------- Step 3.x - Run Migration Scripts - Get DB from Kim */ 149 0_data-cleanup.sql /* Rerun basic orphaned records cleanup and few misc updates. */ 156 150 1_data-ip_ipv_rename.sql 151 2_data-ip_ipv_split.sql 157 152 158 153 2_data-iv_measure_name.sql /* Kims mapping with MEASURE_TITLE_OVERRIDE IVN, MN, CMT */ 159 154 3_data-data_source_to_ipv.sql /* Kims mapping with SO */ 160 161 155 4_data-iv_dimensions.sql /* Kim's mapping - will send when finished DSC & S : VALUE to DIM NAME : VALUE */ 162 156 5_data-ivv_dimensions.sql
Note: See TracChangeset
for help on using the changeset viewer.