Весенняя загрузка — MySQL использует InnoDB по умолчанию

#mysql #hibernate #spring-boot #dialect

#mysql #спящий режим #весенняя загрузка #диалект

Вопрос:

Я хочу создать свои таблицы базы данных с помощью InnoDB, я использую Spring Boot 2.1.3 и MySQL 8.0, поэтому я использовал это:

 spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect
  

И, да, это работает, но у меня много ошибок в моей консоли:

 2019-04-03 19:11:55.182  INFO 1820 --- [  restartedMain] org.hibernate.dialect.Dialect            : HHH000400: Using dialect: org.hibernate.dialect.MySQL8Dialect
2019-04-03 19:11:55.966  WARN 1820 --- [  restartedMain] o.h.t.s.i.ExceptionHandlerLoggedImpl     : GenerationTarget encountered exception accepting command : Error executing DDL "alter table application drop foreign key FKldca8xj6lqb3rsqawrowmkqbg" via JDBC Statement

org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL "alter table application drop foreign key FKldca8xj6lqb3rsqawrowmkqbg" via JDBC Statement
  

И это для каждой моей таблицы:

 Caused by: java.sql.SQLSyntaxErrorException: Table 'test.usr' doesn't exist
  

«test.usr» -> «test» — это имя моей схемы, а «usr» — это имя таблицы.

Но он по-прежнему создает все мои таблицы, так как я могу избавиться от этих ошибок?

Комментарии:

1. user ключевое слово в mysql, вы можете предпочесть другое имя или выполнить escape?

2. @soorapadman это происходит со всеми таблицами, я уже пытался изменить имя этой таблицы, это не помогло.

3. @ED Я не уверен, можете ли вы попробовать просто изменить свойство spring.jpa.hibernate.ddl на update и проверить?

4. @soorapadman Ошибок при обновлении нет, но я все еще хочу знать, как это исправить. Это действительно странно.

5. может быть похоже на проблему с диалектом.

Ответ №1:

Как предложил Antoniosssss, я только что использовал Flyway для обработки моей базы данных. Спасибо.