X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=database_utils%2Fmigrate_mano_db.sh;h=c7d51f095298a20be0341d107e12c7d8044011eb;hb=259aebc29609d5d9b8ca8d3d605f8da633fa62aa;hp=b6867ffefc8c9248d9229c648749305cbb737c9c;hpb=220e83e2c083b34ee77bc6cc7145027183ae9d00;p=osm%2FRO.git diff --git a/database_utils/migrate_mano_db.sh b/database_utils/migrate_mano_db.sh index b6867ffe..c7d51f09 100755 --- a/database_utils/migrate_mano_db.sh +++ b/database_utils/migrate_mano_db.sh @@ -36,7 +36,7 @@ QUIET_MODE="" BACKUP_DIR="" BACKUP_FILE="" #TODO update it with the last database version -LAST_DB_VERSION=37 +LAST_DB_VERSION=39 # Detect paths MYSQL=$(which mysql) @@ -195,6 +195,8 @@ fi #[ $OPENMANO_VER_NUM -ge 6001 ] && DB_VERSION=35 #0.6.01 => 35 #[ $OPENMANO_VER_NUM -ge 6003 ] && DB_VERSION=36 #0.6.03 => 36 #[ $OPENMANO_VER_NUM -ge 6009 ] && DB_VERSION=37 #0.6.09 => 37 +#[ $OPENMANO_VER_NUM -ge 6011 ] && DB_VERSION=38 #0.6.11 => 38 +#[ $OPENMANO_VER_NUM -ge 6020 ] && DB_VERSION=39 #0.6.20 => 39 #TODO ... put next versions here function upgrade_to_1(){ @@ -1362,7 +1364,103 @@ function downgrade_from_37(){ # It doesn't make sense to reverse to a bug state. sql "DELETE FROM schema_version WHERE version_int='37';" } +function upgrade_to_38(){ + echo " Change vim_wim_actions, add worker, related" + sql "ALTER TABLE vim_wim_actions ADD COLUMN worker VARCHAR(64) NULL AFTER task_index, " \ + "ADD COLUMN related VARCHAR(36) NULL AFTER worker, " \ + "CHANGE COLUMN status status ENUM('SCHEDULED','BUILD','DONE','FAILED','SUPERSEDED','FINISHED') " \ + "NOT NULL DEFAULT 'SCHEDULED' AFTER item_id;" + sql "UPDATE vim_wim_actions set related=item_id;" + echo " Change DONE to FINISHED when DELETE has been completed" + sql "UPDATE vim_wim_actions as v1 join vim_wim_actions as v2 on (v1.action='CREATE' or v1.action='FIND') and " \ + "v2.action='DELETE' and (v2.status='SUPERSEDED' or v2.status='DONE') and v1.item_id=v2.item_id " \ + "SET v1.status='FINISHED', v2.status='FINISHED';" + echo " Add osm_id to instance_nets" + sql "ALTER TABLE instance_nets ADD COLUMN osm_id VARCHAR(255) NULL AFTER uuid;" + echo " Add related to instance_xxxx" + for table in instance_classifications instance_nets instance_sfis instance_sfps instance_sfs \ + instance_vms + do + sql "ALTER TABLE $table ADD COLUMN related VARCHAR(36) NULL AFTER vim_info;" + sql "UPDATE $table set related=uuid;" + done + sql "ALTER TABLE instance_wim_nets ADD COLUMN related VARCHAR(36) NULL AFTER wim_info;" + sql "UPDATE instance_wim_nets set related=uuid;" + + sql "INSERT INTO schema_version (version_int, version, openmano_ver, comments, date) " \ + "VALUES (38, '0.38', '0.6.11', 'Adding related to vim_wim_actions', '2019-03-07');" + +} +function downgrade_from_38(){ + echo " Change vim_wim_actions, delete worker, related" + sql "UPDATE vim_wim_actions SET status='DONE' WHERE status='FINISHED';" + sql "ALTER TABLE vim_wim_actions DROP COLUMN worker, DROP COLUMN related, " \ + "CHANGE COLUMN status status ENUM('SCHEDULED','BUILD','DONE','FAILED','SUPERSEDED') " \ + "NOT NULL DEFAULT 'SCHEDULED' AFTER item_id;" + echo " Remove related from instance_xxxx" + for table in instance_classifications instance_nets instance_wim_netsinstance_sfis instance_sfps instance_sfs \ + instance_vms + do + sql "ALTER TABLE $table DROP COLUMN related;" + done + echo " Remove osm_id from instance_nets" + sql "ALTER TABLE instance_nets DROP COLUMN osm_id;" + sql "DELETE FROM schema_version WHERE version_int='38';" +} + +function upgrade_to_39(){ + echo " Enlarge vim_id to 300 at all places" + sql "ALTER TABLE datacenters_flavors CHANGE COLUMN vim_id vim_id VARCHAR(300) NOT NULL AFTER datacenter_vim_id;" + sql "ALTER TABLE datacenters_images CHANGE COLUMN vim_id vim_id VARCHAR(300) NOT NULL AFTER datacenter_vim_id;" + sql "ALTER TABLE datacenter_nets CHANGE COLUMN vim_net_id vim_net_id VARCHAR(300) NOT NULL AFTER name;" + sql "ALTER TABLE instance_classifications CHANGE COLUMN vim_classification_id vim_classification_id VARCHAR(300)" \ + " NULL DEFAULT NULL AFTER instance_scenario_id;" + sql "ALTER TABLE instance_interfaces CHANGE COLUMN vim_interface_id vim_interface_id VARCHAR(300) NULL DEFAULT " \ + " NULL AFTER interface_id;" + sql "ALTER TABLE instance_nets CHANGE COLUMN vim_net_id vim_net_id VARCHAR(300) NULL DEFAULT NULL" \ + " AFTER osm_id;" + sql "ALTER TABLE instance_sfis CHANGE COLUMN vim_sfi_id vim_sfi_id VARCHAR(300) NULL DEFAULT NULL" \ + " AFTER instance_scenario_id;" + sql "ALTER TABLE instance_sfps CHANGE COLUMN vim_sfp_id vim_sfp_id VARCHAR(300) NULL DEFAULT NULL" \ + " AFTER instance_scenario_id;" + sql "ALTER TABLE instance_sfs CHANGE COLUMN vim_sf_id vim_sf_id VARCHAR(300) NULL DEFAULT NULL" \ + " AFTER instance_scenario_id;" + sql "ALTER TABLE instance_vms CHANGE COLUMN vim_vm_id vim_vm_id VARCHAR(300) NULL DEFAULT NULL" \ + " AFTER instance_vnf_id, DROP INDEX vim_vm_id;" + sql "ALTER TABLE instance_wim_nets CHANGE COLUMN wim_internal_id wim_internal_id VARCHAR(300) NULL DEFAULT NULL" \ + " COMMENT 'Internal ID used by the WIM to refer to the network' AFTER uuid;" + sql "ALTER TABLE vim_wim_actions CHANGE COLUMN vim_id vim_id VARCHAR(300) NULL DEFAULT NULL" \ + " AFTER datacenter_vim_id;" + sql "INSERT INTO schema_version (version_int, version, openmano_ver, comments, date) " \ + "VALUES (39, '0.39', '0.6.20', 'Enlarge vim_id to 300 at all places', '2019-05-23');" +} +function downgrade_from_39(){ + echo " Set vim_id to original lenght at all places" + sql "ALTER TABLE datacenters_flavors CHANGE COLUMN vim_id vim_id VARCHAR(36) NOT NULL AFTER datacenter_vim_id;" + sql "ALTER TABLE datacenters_images CHANGE COLUMN vim_id vim_id VARCHAR(36) NOT NULL AFTER datacenter_vim_id;" + sql "ALTER TABLE datacenter_nets CHANGE COLUMN vim_net_id vim_net_id VARCHAR(36) NOT NULL AFTER name;" + sql "ALTER TABLE instance_classifications CHANGE COLUMN vim_classification_id vim_classification_id VARCHAR(36)" \ + " NULL DEFAULT NULL AFTER instance_scenario_id;" + sql "ALTER TABLE instance_interfaces CHANGE COLUMN vim_interface_id vim_interface_id VARCHAR(128) NULL DEFAULT " \ + " NULL AFTER interface_id;" + sql "ALTER TABLE instance_nets CHANGE COLUMN vim_net_id vim_net_id VARCHAR(128) NULL DEFAULT NULL" \ + " AFTER osm_id;" + sql "ALTER TABLE instance_sfis CHANGE COLUMN vim_sfi_id vim_sfi_id VARCHAR(36) NULL DEFAULT NULL" \ + " AFTER instance_scenario_id;" + sql "ALTER TABLE instance_sfps CHANGE COLUMN vim_sfp_id vim_sfp_id VARCHAR(36) NULL DEFAULT NULL" \ + " AFTER instance_scenario_id;" + sql "ALTER TABLE instance_sfs CHANGE COLUMN vim_sf_id vim_sf_id VARCHAR(36) NULL DEFAULT NULL" \ + " AFTER instance_scenario_id;" + sql "ALTER TABLE instance_vms CHANGE COLUMN vim_vm_id vim_vm_id VARCHAR(36) NULL DEFAULT NULL" \ + " AFTER instance_vnf_id, ADD UNIQUE INDEX vim_vm_id (vim_vm_id);" + sql "ALTER TABLE instance_wim_nets CHANGE COLUMN wim_internal_id wim_internal_id VARCHAR(128) NULL DEFAULT NULL" \ + " COMMENT 'Internal ID used by the WIM to refer to the network' AFTER uuid;" + sql "ALTER TABLE vim_wim_actions CHANGE COLUMN vim_id vim_id VARCHAR(64) NULL DEFAULT NULL" \ + " AFTER datacenter_vim_id;" + + sql "DELETE FROM schema_version WHERE version_int='39';" +} #TODO ... put functions here