<?xml version="1.0" encoding="UTF-8"?>
<databaseChangeLog
        xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
        xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.0.xsd
        http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd">
    <changeSet id="1" author="dratanghayra">
        <sql dbms="mysql" endDelimiter=";;" splitStatements="true" stripComments="true">
            USE art_relations;;

            -- Created temp table to store vendor_track_identifier and id
            CREATE TABLE IF NOT EXISTS `ROLLBACK-DIG-3583_vendor_track_identifier`
            SELECT id, vendor_track_identifier FROM track 
            WHERE vendor_track_identifier IS NOT NULL AND 
            vendor_track_identifier != 'null' AND 
            vendor_track_identifier != '' AND
            vendor_track_identifier NOT LIKE 'G0%' AND
            (LENGTH(REPLACE(vendor_track_identifier, " ", "")) &lt; 30
            OR LENGTH(REPLACE(vendor_track_identifier, ".", "")) &lt; 30
            OR LENGTH(REPLACE(vendor_track_identifier, ",", "")) &lt; 30
            OR LENGTH(REPLACE(vendor_track_identifier, "_", "")) &lt; 30
            OR LENGTH(REPLACE(vendor_track_identifier, "'", "")) &lt; 30
            OR LENGTH(REPLACE(vendor_track_identifier, "-", "")) &lt; 30);;

            -- Update vendor_track_identifier to for all tracks stored in temp table
            UPDATE track t
            INNER JOIN `ROLLBACK-DIG-3583_vendor_track_identifier` rb ON  t.id = rb.id             
            SET t.vendor_track_identifier = 
            REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE((CONCAT('G0', t.vendor_track_identifier)), " ", ""), ".", ""), ",", ""), "_", ""), "'", ""), "-", "");;

        </sql>
        <rollback>
            USE art_relations;;

            -- Update tracks with old value of vendor_track_identifier stored in temp table
            UPDATE track t 
            INNER JOIN `ROLLBACK-DIG-3583_vendor_track_identifier` vti ON vti.id = t.id
            SET t.vendor_track_identifier = vti.vendor_track_identifier;;

            DROP TABLE `ROLLBACK-DIG-3583_vendor_track_identifier`;;

        </rollback>
    </changeSet>
</databaseChangeLog>
