I have made upgrades in the past from 1.6.x to 1.11.x which were successful, however for one of the most recent upgrades i am now working on, i have fallen into
Caused by: liquibase.exception.MigrationFailedException: Migration failed for change set liquibase-update-to-latest.xml::20110825-1000-migrating-providers-to-encounter-provider::raff:
which is as a result of the above failing Changeset;
At first i thought it was my MySQL version (5.6, provided by MariaDB 10.0) but found out it is not.
I am manually editing this SQL through MySQL client to use insert ignore to avoid checking for duplicates, since it fails in this manner even when there was no entries in encounter_provider after which i manually delete provider_id column from encounter table to skip these two consecutive change-sets.
Is this a personal problem or within the changeset @raff?
It needs an additional correlated subquery to ensure the rows to insert do not exist already. The distinct clause simply removes duplicates from the select.
insert into encounter_provider(provider_id, encounter_id, encounter_role_id, creator, date_created, voided, uuid)
select distinct provider.provider_id, encounter.encounter_id, encounter_role.encounter_role_id,
encounter.creator, encounter.date_created, encounter.voided, encounter.uuid
from encounter as encounter inner join encounter_role as encounter_role
on encounter_role.uuid = "a0b03050-c99b-11e0-9572-0800200c9a66"
inner join provider as provider on encounter.provider_id = provider.person_id
where encounter.encounter_id not in (select encounter_id from encounter_provider) AND
NOT EXISTS (SELECT 1 from encounter_provider ep
WHERE ep.provider_id = provider.provider_id AND
ep.encounter_id = encounter.encounter_id AND
ep.encounter_role_id = encounter_role.encounter_role_id )