ऐसा लगता है कि डेटाबेस के साथ परीक्षण कंटेनर सफलतापूर्वक प्रारंभ हो गया है, इसलिए कोई समस्या नहीं है, आपको एक खाली डेटाबेस मिल रहा है।
फिर आप फ्लाईवे चलाने का प्रयास करते हैं और यह विफल हो जाता है। स्प्रिंग बूट में फ्लाईवे स्प्रिंग एप्लिकेशन संदर्भ के प्रारंभ के दौरान काम करता है, इसलिए वास्तविक माइग्रेशन चलता है जबकि एप्लिकेशन संदर्भ प्रारंभ हो जाता है, इसलिए माइग्रेशन विफलता वसंत विफलता की तरह दिखती है।
हालांकि, कारण लॉग किया गया है:माइग्रेशन फ़ाइल में अमान्य सामग्री है:
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 का संस्करण शामिल है जो इस सिंटैक्स का समर्थन नहीं करता है। तो यह डीबी से अलग है जिसे आप स्थानीय वातावरण में डॉकटर के बिना उपयोग करते हैं।
किसी भी मामले में यह डॉकटर, स्प्रिंग या फ्लाईवे के बारे में नहीं है बल्कि डीबी और माइग्रेशन कोड के बारे में है।
संकल्प के संदर्भ में, मैं सीधे डीबी की डॉकर छवि को चलाने का सुझाव देता हूं (जावा, टेस्टकंटेनर और फ्लाईवे के बिना)। जब यह चलता है, तो बस इस माइग्रेशन को "मैन्युअल रूप से" pgadmin या कुछ में चलाएं। आपसे वही त्रुटि देखने की अपेक्षा की जाती है।