Как автоматически создать базу данных с помощью Spring Boot в производственном режимеJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как автоматически создать базу данных с помощью Spring Boot в производственном режиме

Сообщение Anonymous »

Я пытаюсь автоматически создать рабочую базу данных при запуске приложения, поскольку я использую свойство Spring.jpa.hibernate.ddl-auto=validate application.properties в рабочей среде. Я пробовал много способов, и ни один из них не работал удовлетворительно, и, очевидно, большинство вещей не выполняются до автоматической настройки источника данных. Самое близкое решение, которое я нашел, было следующее:

Код: Выделить всё

import com.zaxxer.hikari.HikariDataSource;
import jakarta.annotation.PostConstruct;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import javax.sql.DataSource;

@Configuration
public class DataSourceConfig {

@Bean
public DataSource dataSource() {
return new HikariDataSource(); // I don't want to override the default data source from the Spring Boot auto-configuration, can we fetch the data source that Spring Boot would normally return?
}

@PostConstruct
public void init() {
System.out.println("Custom logic executed before DataSource is fully used.");
}
}
Выполняется мой метод init(), который я могу использовать для создания рабочей базы данных до того, как к ней будет осуществлен доступ. Потому что впоследствии возникнет исключение из-за отсутствия базы данных, и Spring Boot завершит приложение.
Я не хочу переопределять или связываться с источником данных, который Spring Загрузка уже автоматически настраивается с помощью Hikari, и я не хочу жестко запрограммировать использование Hikari. Если я запускаю указанный выше класс конфигурации в своем приложении Spring Boot, свойства из моего файла application.properties не настраиваются автоматически, поскольку мои свойства подключения к базе данных в конечном итоге отсутствуют (

Код: Выделить всё

Caused by: java.lang.IllegalArgumentException: dataSource or dataSourceClassName or jdbcUrl is required.
).
Как я могу просто внедрить метод до того, как будет использован bean-компонент dataSource, или, может быть, есть другой простой способ создать базу данных до того, как Spring Boot попытается получить к нему доступ?

Подробнее здесь: https://stackoverflow.com/questions/792 ... ction-mode
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»