fix 1148 allow name repetition at wim,wim_accounts
[osm/RO.git] / RO / osm_ro / database_utils / migrate_mano_db.sh
index 5d03b96..334b5ab 100755 (executable)
@@ -35,8 +35,8 @@ DBNAME="mano_db"
 QUIET_MODE=""
 BACKUP_DIR=""
 BACKUP_FILE=""
-#TODO update it with the last database version
-LAST_DB_VERSION=40
+# TODO update it with the last database version
+LAST_DB_VERSION=41
 
 # Detect paths
 MYSQL=$(which mysql)
@@ -198,7 +198,8 @@ fi
 #[ $OPENMANO_VER_NUM -ge 6011 ] && DB_VERSION=38  #0.6.11 =>  38
 #[ $OPENMANO_VER_NUM -ge 6020 ] && DB_VERSION=39  #0.6.20 =>  39
 #[ $OPENMANO_VER_NUM -ge 6000004 ] && DB_VERSION=40  #6.0.4 =>  40
-#TODO ... put next versions here
+#[ $OPENMANO_VER_NUM -ge 8000000 ] && DB_VERSION=41  #8.0.0 =>  41
+# TODO ... put next versions here
 
 function upgrade_to_1(){
     # echo "    upgrade database from version 0.0 to version 0.1"
@@ -1464,8 +1465,8 @@ function downgrade_from_39(){
 }
 function upgrade_to_40(){
     echo "      Adding instance_wim_net_id, created_at, modified_at at 'instance_interfaces'"
-    sql "ALTER TABLE instance_interfaces ADD COLUMN instance_wim_net_id VARCHAR(36) NULL AFTER instance_net_id, "\
-        "ADD COLUMN model VARCHAR(12) NULL DEFAULT NULL AFTER type, "\"
+    sql "ALTER TABLE instance_interfaces ADD COLUMN instance_wim_net_id VARCHAR(36) NULL AFTER instance_net_id, " \
+        "ADD COLUMN model VARCHAR(12) NULL DEFAULT NULL AFTER type, " \
         "ADD COLUMN created_at DOUBLE NULL DEFAULT NULL AFTER vlan, " \
         "ADD COLUMN modified_at DOUBLE NULL DEFAULT NULL AFTER created_at;"
     echo "      Adding sdn to 'instance_wim_nets'"
@@ -1480,7 +1481,7 @@ function upgrade_to_40(){
         " CHANGE COLUMN pop_switch_port device_interface_id VARCHAR(64) NULL AFTER device_id, " \
         " CHANGE COLUMN wan_service_endpoint_id service_endpoint_id VARCHAR(256) NOT NULL AFTER device_interface_id, " \
         " CHANGE COLUMN wan_service_mapping_info service_mapping_info TEXT NULL AFTER service_endpoint_id, " \
-        " ADD COLUMN switch_dpid VARCHAR(64) NULL AFTER wan_service_endpoint_id," \
+        " ADD COLUMN switch_dpid VARCHAR(64) NULL AFTER service_endpoint_id," \
         " ADD COLUMN switch_port VARCHAR(64) NULL AFTER switch_dpid;"
     echo "      remove unique name to 'datacenters'"
     sql "ALTER TABLE datacenters DROP INDEX name;"
@@ -1504,13 +1505,26 @@ function downgrade_from_40(){
         " CHANGE COLUMN service_endpoint_id wan_service_endpoint_id VARCHAR(256) NOT NULL AFTER pop_switch_port, " \
         " CHANGE COLUMN service_mapping_info wan_service_mapping_info TEXT NULL AFTER wan_service_endpoint_id, " \
              " DROP COLUMN switch_dpid, DROP COLUMN switch_port;"
-    sql "ALTER TABLE wim_port_mappings ADD UNIQUE INDEX unique_datacenter_port_mapping(datacenter_id, pop_switch_dpid,
-         pop_switch_port);"
+    sql "ALTER TABLE wim_port_mappings ADD UNIQUE INDEX unique_datacenter_port_mapping(datacenter_id, " \
+        "pop_switch_dpid, pop_switch_port);"
     echo "      add unique name to 'datacenters'"
     sql "ALTER TABLE datacenters ADD UNIQUE INDEX name (name);"
     sql "DELETE FROM schema_version WHERE version_int='40';"
 }
 
+function upgrade_to_41(){
+    echo "      Removing unique name at 'wims' 'wim_accounts'"
+    sql "ALTER TABLE wims      DROP INDEX name;"
+    sql "ALTER TABLE wim_accounts      DROP INDEX wim_name;"
+    sql "INSERT INTO schema_version (version_int, version, openmano_ver, comments, date) " \
+        "VALUES (41, '0.41', '8.0.0', 'Removing unique name for wims/wim_accounts', '2020-07-16');"
+}
+function downgrade_from_41(){
+    echo "      Adding back unique name at 'wims' 'wim_accounts'"
+    sql "ALTER TABLE wims      ADD UNIQUE INDEX name (name);"
+    sql "ALTER TABLE wim_accounts      ADD UNIQUE INDEX wim_name (name);"
+    sql "DELETE FROM schema_version WHERE version_int='41';"
+}
 
 #TODO ... put functions here