#flyway #quarkus
Вопрос:
У меня возникли проблемы с получением кваркуса.flyway.заполнители, работающие в моем приложении Quarkus. У меня есть эта строка, определенная в файле application.properties
quarkus.flyway.placeholders.myuser=my_user
в моем файле sql у меня есть эта строка
GRANT DELETE, INSERT, SELECT, UPDATE ON survey.answers TO ${myuser};
ошибка, которую я получаю, заключается в следующем
org.flywaydb.core.api.FlywayException: No value provided for placeholder: ${myuser}. Check your configuration!
Вот то, что я пробовал:
- обновлен до Quarkus 1.13.6.Окончательный
- Попробовал установить
quarkus.flyway.placeholder-prefix=#[
quarkus.flyway.placeholder-suffix=]
Как показано в интеграционном тесте:
https://github.com/quarkusio/quarkus/tree/main/integration-tests/flyway
Спасибо, Мэтью
Комментарии:
1. Я только что попробовал примеры из интеграционного теста « кваркус. flyway.заполнители.название=ЗАМЕНЕН кваркус. flyway.заполнитель-префикс=#[ кваркус. flyway.заполнитель-суффикс=] « SQL изменен на « РАЗРЕШИТЬ УДАЛЕНИЕ, ВСТАВКУ, ВЫБОР, ОБНОВЛЕНИЕ ПРИ опросе.ответы НА #[название]; « Новое сообщение об ошибке ` » org.postgresql.util. Исключение PSQLException: ОШИБКА: синтаксическая ошибка в или около «#» «
2. Я только что попробовал интеграционный тест, о котором вы упомянули, и он работает просто отлично
Ответ №1:
Я вижу, что у вас есть опечатка в вашей конфигурации или сценарии sql.
Со следующими настройками:
quarkus.flyway.placeholder-prefix=#[
quarkus.flyway.placeholder-suffix=]
В вашем файле sql заполнитель должен быть определен как a #[myuser]
, а не $[myuser]
Вы также можете изменить определение префикса-заполнителя в своем application.properties
файле, чтобы поддерживать префикс, который уже есть в файле sql.
Ответ №2:
В свое время у меня было два пользователя flyway. кваркус.flyway.владелец этого имеет привилегии создания кваркуса.flyway.у этого пользователя меньше привилегий.
Этот элемент не был связан с ролью пользователя. кваркус.flyway.заполнители.myuser=мой пользователь
После смены его на кваркус.flyway.владелец.заполнители.myuser=my_user он начал работать.