#hibernate #spring-mvc #flyway
#переход в спящий режим #spring-mvc #проход
Вопрос:
Привет, ребята, я удалил 4 sql-файла из flyway и соответствующие строки версии схемы из базы данных, это проект spring mvc. Я попытался откатить все файлы, но ничего не изменилось. Я использую intellij. Есть идеи, как я могу это решить?
Error creating bean with name 'flyway' defined in ServletContext resource [/WEB-INF/applicationContext-db.xml]: Invocation of init method failed; nested exception is org.flywaydb.core.api.FlywayException: Validate failed: Detected resolved migration not aenter code herepplied to database: 0.1.10
2020-12-17 22:21:21,189 INFO HikariPool - springHikariCP - Close initiated...
2020-12-17 22:21:21,205 INFO HikariPool - springHikariCP - Closed.
2020-12-17 22:21:21,205 ERROR ContextLoader - Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'flyway' defined in ServletContext resource [/WEB-INF/applicationContext-db.xml]: Invocation of init method failed; nested exception is org.flywaydb.core.api.FlywayException: Validate failed: Detected resolved migration not applied to database: 0.1.10
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1583)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:296)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1076)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:851)
Комментарии:
1. вот вторая часть ошибки в org.springframework.context.support. AbstractApplicationContext.refresh(AbstractApplicationContext.java:541) в org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:444)
Ответ №1:
Ошибка означает, что Flyway может видеть файл миграции (версия 0.1.10), который не является последним, то есть в таблице истории есть миграции с более высоким номером, но в нем нет записей о его применении в прошлом, и он явно не игнорируется. Быстрый обходной путь — добавить флаг конфигурации -ignoreIgnoredMigrations=true
Однако, в принципе, вы не должны удалять файлы миграции и изменять таблицу истории. Как только вы это сделаете, существует вероятность ошибок, если вы где-либо введете несоответствие, и вы также нарушили идею о том, что коллекция скриптов (надеюсь, с контролем исходного кода!) позволяет точно воспроизводить состояние базы данных с flyway clean migrate
помощью .
Комментарии:
1. Большое вам спасибо