Zde je řešení, které jsem zjistil, že funguje dostatečně dobře, i když není ideální, protože musíte změnit svůj SQL skript.
Ve vašem application.properties
soubor změnit vlastnost oddělovače DataSource:
spring.datasource.separator=^;
Poté aktualizujte schema.sql
soubor vypadat následovně:
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 ^;
Příkaz DELIMITER funguje pouze s klientem MySQL CLI a Workbench a nebude fungovat pro inicializaci databáze Spring Boot. Jakmile odstraníte příkazy DELIMITER, Spring Boot stále vyvolá výjimku, protože nerozumí ;
znaky v uložených procedurách nejsou samostatné příkazy, takže musíte změnit vlastnost oddělovače datového zdroje.