Saltar al contenido

Error de inicialización de la base de datos MySQL de Spring Boot con procedimientos almacenados

Te doy la bienvenida a nuestro sitio web, en este lugar encontrarás la solucíon de lo que estás buscando.

Solución:

La respuesta resultó ser muy simple. Spring Boot tiene una propiedad de separador DataSource que se puede configurar en el archivo application.properties:

spring.datasource.separator=^;

Luego, en el archivo schema.sql todo ; las declaraciones que no están dentro del procedimiento almacenado deben actualizarse con el nuevo separador.

DROP PROCEDURE IF EXISTS `database`.FOO;
CREATE PROCEDURE `database`.FOO()

BEGIN
  SELECT * from `database`.employees;
END ^;

Agregando a la respuesta de @Andrews:

Al usar una costumbre dataSource que Spring Boot no crea automáticamente, puede suceder que el spring.datasource.separator la propiedad no se utiliza. En estos casos, el separador no se envía al Populator. En este caso, se puede configurar directamente en la inicialización de la fuente de datos. Por ejemplo, lo siguiente se puede usar en un perfil de actualización especial asumiendo dataSource se define en otra parte:


    

O, cuando el poblador se establece explícitamente:


    
    
        
            $update.schema.script
        
    


    
        
    
    
        
    
    
    

Calificaciones y reseñas

Si guardas algún reparo o capacidad de afinar nuestro sección te proponemos realizar una anotación y con deseo lo observaremos.

¡Haz clic para puntuar esta entrada!
(Votos: 2 Promedio: 4.5)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *