Я закончил свое приложение для весенней загрузки и теперь пытаюсь развернуть его с помощью docker -compose. При разработке я использовал БД H2 в памяти, и все было хорошо. Теперь я пытаюсь переключить источник данных на MySql, а спящий режим не создает никаких таблиц в базе данных MySql. Затем мое загрузочное приложение Spring пытается выполнить некоторые действия и не может найти никаких таблиц (потому что оно не было создано при запуске). У меня есть исключения вроде
Caused by: java.sql.SQLSyntaxErrorException: Table 'db.test_run' doesn't exist
. Я пытался переключить ddl-auto на create-drop или update и получил тот же результат. Моя конфигурация:
spring:
datasource:
url: jdbc:mysql://localhost:3306/db
username: user
password: password
driverClassName: com.mysql.cj.jdbc.Driver
jpa:
database: mysql
database-platform: org.hibernate.dialect.MySQL8Dialect
show-sql: true
hibernate:
ddl-auto: create
jackson:
serialization:
write-dates-as-timestamps: false
Db работает, и я могу подключиться к нему через браузер Idea, и я могу создавать таблицы с пользователем «пользователь». Конфигурация моего MySql сервера в docker -compose:
db:
image: mysql/mysql-server
restart: always
environment:
MYSQL_DATABASE: 'db'
MYSQL_USER: 'user'
MYSQL_PASSWORD: 'password'
MYSQL_ROOT_PASSWORD: 'password'
ports:
- 3306:3306
expose:
- 3306
Я думаю, мои классы приложений в порядке, потому что они работают с h2 DB, а таблицы все еще создаются с h2. Я использую Spring Boot 2.1.6 и последнюю docker изображение MySql 8.0.20