Flyway Java: पूर्ण गाइड उदाहरणों के साथ

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

Flyway का परिचय: यह क्या है और क्यों ज़रूरी है

Flyway एक लाइब्रेरी है जो डेटाबेस के वर्जन कंट्रोल और माइग्रेशन (Database Migration Tool) के लिए उपयोग होती है। आधुनिक सॉफ्टवेयर डेवलपमेंट में, खासकर टीम वर्क और CI/CD मेथडोलॉजी में, डेवलपर्स, टेस्टिंग और प्रोडक्शन एनवायरनमेंट के बीच डेटाबेस स्ट्रक्चर को सिंक्रोनाइज़ करना बेहद ज़रूरी हो जाता है। Flyway इस समस्या को हल करता है, जिससे आप डेटाबेस स्कीमा में बदलाव (टेबल बनाना, कॉलम जोड़ना, इंडेक्स, ट्रिगर आदि) को क्रमबद्ध, वर्जन-आधारित SQL स्क्रिप्ट या Java क्लास के रूप में लिख सकते हैं।

Flyway की मुख्य अवधारणा सरल है: हर माइग्रेशन का एक अनोखा वर्जन नंबर होता है (जैसे V1, V2, V3) और इसे केवल एक बार एक्ज़ीक्यूट किया जाता है। लाइब्रेरी एक विशेष टेबल (डिफ़ॉल्ट रूप से flyway_schema_history) का उपयोग करके ट्रैक करती है कि कौन सी माइग्रेशन पहले से लागू हो चुकी हैं। यह डेटाबेस की स्थिति को इडेम्पोटेंट और रिप्रोड्यूसेबल बनाता है।

Flyway का उपयोग क्यों करें?

  • स्कीमा वर्जनिंग: डेटाबेस में हर बदलाव एक अलग वर्जन है, जिसे वापस रोला या लागू किया जा सकता है।
  • ऑटोमेशन: Maven, Gradle, Spring Boot और CI/CD पाइपलाइनों के साथ आसान इंटीग्रेशन।
  • इंटीग्रिटी कंट्रोल: Flyway माइग्रेशन की चेकसम जाँच करता है, जिससे पहले से लागू स्क्रिप्ट में आकस्मिक बदलाव रुकते हैं।
  • सरलता: ज़्यादातर कामों के लिए बस एक सामान्य SQL स्क्रिप्ट लिखना काफी है।

Java के लिए Flyway इंस्टॉलेशन

Flyway को pip या npm से इंस्टॉल नहीं किया जाता, क्योंकि यह एक Java लाइब्रेरी है। इसे प्रोजेक्ट में जोड़ने के कई तरीके हैं:

1. Maven (pom.xml)

<dependency>
    <groupId>org.flywaydb</groupId>
    <artifactId>flyway-core</artifactId>
    <version>9.22.3</version> <!-- लिखने के समय का नवीनतम वर्जन -->
</dependency>

<!-- अपने डेटाबेस का ड्राइवर, जैसे PostgreSQL -->
<dependency>
    <groupId>org.postgresql</groupId>
    <artifactId>postgresql</artifactId>
    <version>42.7.1</version>
</dependency>

2. Gradle (build.gradle)

implementation 'org.flywaydb:flyway-core:9.22.3'
implementation 'org.postgresql:postgresql:42.7.1'

3. Maven प्लगइन (कमांड लाइन से चलाने के लिए)

<plugin>
    <groupId>org.flywaydb</groupId>
    <artifactId>flyway-maven-plugin</artifactId>
    <version>9.22.3</version>
    <configuration>
        <url>jdbc:postgresql://localhost:5432/mydb</url>
        <user>myuser</user>
        <password>mypassword</password>
    </configuration>
</plugin>

4. Spring Boot (ऑटोमैटिक कॉन्फ़िगरेशन)

अगर आप Spring Boot का उपयोग कर रहे हैं, तो बस डिपेंडेंसी जोड़ें और application.properties में सेटिंग्स कॉन्फ़िगर करें:

spring.flyway.enabled=true
spring.flyway.locations=classpath:db/migration
spring.datasource.url=jdbc:postgresql://localhost:5432/mydb
spring.datasource.username=myuser
spring.datasource.password=mypassword

कोड उदाहरण के साथ त्वरित शुरुआत

आइए users नामक टेबल बनाने के लिए Java एप्लिकेशन में Flyway का एक न्यूनतम उदाहरण देखें।

चरण 1: माइग्रेशन के लिए डायरेक्टरी स्ट्रक्चर बनाएं

डिफ़ॉल्ट रूप से, Flyway classpath में db/migration फ़ोल्डर में SQL स्क्रिप्ट ढूंढता है (जैसे, src/main/resources/db/migration)।

चरण 2: माइग्रेशन फ़ाइल बनाएं

इस फ़ोल्डर में V1__Create_users_table.sql नामक फ़ाइल बनाएं:

CREATE TABLE users (
    id SERIAL PRIMARY KEY,
    username VARCHAR(50) NOT NULL UNIQUE,
    email VARCHAR(100) NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

अनुशंसाएँ