sql >> Database >  >> RDS >> PostgreSQL

BeanCreationException:fout bij het maken van bean met de naam 'flywayInitializer'

Het lijkt erop dat de testcontainer met de database succesvol is gestart, dus geen probleem, u krijgt een lege database.

Vervolgens probeert u de flyway uit te voeren en dit mislukt. Flyway in spring-boot werkt tijdens de initialisatie van de lente-toepassingscontext, dus de daadwerkelijke migratie wordt uitgevoerd terwijl de toepassingscontext wordt geïnitialiseerd, dus de migratiefout lijkt op een lente-mislukking.

De reden is echter vastgelegd:het migratiebestand heeft een ongeldige inhoud:

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)
)

Deze GENERATED BY wordt niet ondersteund.

Waarom? Waarschijnlijk bevat uw docker-image de versie van RDBMS die deze syntaxis niet ondersteunt. Het verschilt dus van de DB die je gebruikt in een lokale omgeving zonder docker.

Het gaat in ieder geval niet om docker, spring of flyway maar om de DB en de migratiecode.

Wat de resolutie betreft, raad ik aan om de docker-image van de DB rechtstreeks uit te voeren (zonder java, testcontainers en flyway). Als deze wordt uitgevoerd, voert u deze migratie gewoon "handmatig" uit in pgadmin of zoiets. Er wordt van u verwacht dat u dezelfde fout ziet.



  1. SQL Server RAISERROR-instructie met eenvoudige voorbeelden

  2. Hoe PHP te verbinden met MySQL

  3. MONTHS_BETWEEN() Functie in Oracle

  4. De huidige aanmeldings-ID ophalen in SQL Server (T-SQL)