#java #spring-boot #jpa #flyway
#Ява #пружинный ботинок #jpa #взлетно-посадочная полоса
Вопрос:
В моем приложении для весенней загрузки заданы следующие свойства,
spring.jpa.hibernate.ddl-auto=none spring.datasource.url=jdbc:mysql://127.0.0.1:3306/my-schema spring.datasource.username=root spring.datasource.password=***** spring.flyway.check-location=false spring.flyway.createSchemas=true spring.flyway.schemas=my-schema
Схема «моя схема» не существует заранее, и я бы хотел, чтобы она была создана flyway, а затем использовалась приложением spring-boot для ускорения источника данных HikarCP.
Если я запускаю приложение с вышеуказанными конфигурациями, при запуске я получаю следующую ошибку:
Caused by: org.flywaydb.core.internal.exception.FlywaySqlException: Unable to obtain connection from database: Unknown database 'my-schema'
Теперь, если я изменюсь,
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/
Приложение запускается идеально и создает схему. Однако при попытке запросить любую таблицу возникает исключение:
java.sql.SQLException: No database selected
Ответ №1:
Вы можете настроить Flyway с помощью URL-адреса, который используется исключительно для миграции, а затем настроить приложение на использование другого URL-адреса. Что — то вроде этого:
spring.flyway.url=jdbc:mysql://127.0.0.1:3306 spring.datasource.url=jdbc:mysql://127.0.0.1:3306/my-schema
Вам также необходимо будет предоставить учетные данные для подключения к базе данных, специфичного для Flyway, с использованием spring.flyway.user
и spring.flyway.password
.
Комментарии:
1. Это сработало для меня как заклинание. Спасибо тебе, Энди. Однако есть одна небольшая загвоздка. Всякий раз, когда вы устанавливаете
spring.flyway.url
, вам также нужно отдельно установитьspring.flyway.user
amp;spring.flyway.password
2. Хорошая мысль. Я отредактировал свой ответ на этот счет.