Aqui está a solução que encontrei que funciona bem o suficiente, embora não seja ideal, pois você precisa alterar seu script SQL.
Em seu
application.properties
altere a propriedade do separador DataSource:spring.datasource.separator=^;
Em seguida, atualize seu
schema.sql
arquivo para ficar da seguinte forma:CREATE PROCEDURE Alter_Table()
BEGIN
IF NOT EXISTS( SELECT NULL
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'test_table'
AND table_schema = 'test'
AND column_name = 'cc_test_id') THEN
alter table test_table add cc_test_id VARCHAR(128) NOT NULL;
END IF;
END ^;
call Alter_Table ^;
O comando DELIMITER funciona apenas com o cliente MySQL CLI e o Workbench e não funcionará para a inicialização do banco de dados Spring Boot. Depois de remover os comandos DELIMITER, o Spring Boot ainda lançará uma exceção, pois não entenderá o
;
os caracteres nos procedimentos armazenados não são instruções separadas, portanto, você precisa alterar a propriedade do separador de fonte de dados como solução alternativa.