PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

BeanCreationException:Грешка при създаването на bean с име 'flywayInitializer'

Изглежда, че тестовият контейнер с базата данни е стартирал успешно, така че няма проблем, получавате празна база данни.

След това се опитвате да стартирате flyway и това е неуспешно. Flyway при пружинно зареждане работи по време на инициализацията на контекста на приложението Spring, така че действителната миграция се изпълнява, докато контекстът на приложението се инициализира, така че неуспехът на миграцията изглежда като отказ на пружината.

Причината обаче е регистрирана:файлът за миграция има невалидно съдържание:

Migration V1__initial_user.sql failed
-------------------------------------
SQL State  : 42601
Error Code : 0
Message    : ERROR: syntax error at or near "GENERATED"
 Position: 45
Location   : db/migration/V1__initial_user.sql (/Users/villemossip/Desktop/GRP/GRP- 
SAS/application/build/resources/main/db/migration/V1__initial_user.sql)
Line       : 36
Statement  : CREATE TABLE revinfo
(
   rev      INTEGER GENERATED BY DEFAULT AS IDENTITY ( START WITH 1 ),
   revtstmp BIGINT,
   PRIMARY KEY (rev)
)

Това GENERATED BY не се поддържа.

Защо? Вероятно вашето докер изображение включва версията на RDBMS, която не поддържа този синтаксис. Така че се различава от базата данни, която използвате в локална среда без докер.

Във всеки случай не става въпрос за docker, spring или flyway, а за DB и кода за миграция.

По отношение на разделителната способност, предлагам да стартирате докер изображението на DB директно (без java, тестконтейнери и flyway). Когато се изпълнява, просто стартирайте тази миграция "ръчно" в pgadmin или нещо подобно. Очаква се да видите същата грешка.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как работи Round() в PostgreSQL

  2. pgDash алтернативи - PostgreSQL мониторинг на база данни с ClusterControl

  3. 2 начина за изброяване на всички тригери в PostgreSQL база данни

  4. INSERT COMMAND ::ГРЕШКА:стойността на колоната не съществува

  5. достъп до псевдоними на колони в клаузата where в postgresql