Voici la solution que j'ai trouvée qui fonctionne assez bien, bien qu'elle ne soit pas idéale car vous devez modifier votre script SQL.
Dans votre application.properties
fichier modifier la propriété de séparateur DataSource :
spring.datasource.separator=^;
Mettez ensuite à jour votre schema.sql
fichier ressemble à ceci :
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 ^;
La commande DELIMITER ne fonctionne qu'avec le client MySQL CLI et Workbench et ne fonctionnera pas pour l'initialisation de la base de données Spring Boot. Une fois que vous avez supprimé les commandes DELIMITER, Spring Boot lèvera toujours une exception car il ne comprendra pas le ;
les caractères dans les procédures stockées ne sont pas des instructions séparées, vous devez donc modifier la propriété de séparateur de source de données comme solution de contournement.