es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Spring Data JPA / Flyway Escapando comillas dobles

Tengo un proyecto de Spring Boot que utiliza Spring Data JPA, Flyway y H2 y está intentando procesar un script de migración que contiene la siguiente instrucción SQL:

ALTER ROLE current_user SET search_path TO "$user", public, my_schema;

Cuando Flyway intenta ejecutar esta migración, obtengo el siguiente error:

---------------------------------
SQL State  : 42001
Error Code : 42001
Message    : Error de sintaxis en la instrucción SQL "ALTER ROLE[*] CURRENT_USER SET SEARCH_PATH TO ""$user"", PUBLIC, MY_SCHEMA"; se esperaba "TABLE, USER, INDEX, SCHEMA, SEQUENCE, VIEW"; instrucción SQL:
ALTER ROLE current_user SET search_path TO "$user", public, my_schema [42001-200]

Parece que en algún momento del proceso, las comillas dobles alrededor de "$user" se escaparon con un conjunto adicional de comillas.

¿Cómo puedo solucionar esto?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para solucionar este problema, puedes escapar el carácter $ y eliminar las entidades " reemplazándolas por comillas dobles reales. Puedes modificar tu script de migración para que se vea así en su lugar:

    ALTER ROLE current_user SET search_path TO "$user", public, my_schema;
    

    Esto permitirá que Flyway procese el script de migración sin encontrar errores de sintaxis.

Comments are closed.