Aquí está la solución que encontré que funciona lo suficientemente bien, aunque no es ideal ya que tiene que cambiar su secuencia de comandos SQL.
En su application.properties
archivo cambie la propiedad del separador DataSource:
spring.datasource.separator=^;
Luego actualice su schema.sql
archivo para tener el siguiente aspecto:
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 ^;
El comando DELIMITER solo funciona con el cliente MySQL CLI y Workbench y no funcionará para la inicialización de la base de datos Spring Boot. Una vez que haya eliminado los comandos DELIMITER, Spring Boot seguirá lanzando una excepción ya que no entenderá el ;
los caracteres en los procedimientos almacenados no son declaraciones separadas, por lo que debe cambiar la propiedad del separador de fuente de datos como solución alternativa.