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?
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:Esto permitirá que Flyway procese el script de migración sin encontrar errores de sintaxis.