हम अपने स्प्रिंग बूट आधारित ऐप में डीबी माइग्रेशन के लिए फ्लाईवे का उपयोग करते हैं और अब हमारे पास एकाधिक डेटा स्रोत रणनीति का उपयोग करते समय बहु किरायेदारी समर्थन पेश करने की आवश्यकता है। इसके हिस्से के रूप में हमें कई डेटा स्रोतों के माइग्रेशन का समर्थन करने की भी आवश्यकता है। सभी डेटा स्रोतों को एक ही संरचना को बनाए रखना चाहिए ताकि सभी डेटा स्रोतों के माइग्रेट करने के लिए माइग्रेशन स्क्रिप्ट का उपयोग किया जाना चाहिए। साथ ही, अनुप्रयोग स्टार्टअप पर माइग्रेशन होना चाहिए (निर्माण समय के विपरीत, जबकि ऐसा लगता है कि मैवेन प्लगइन को एकाधिक डेटा स्रोतों को माइग्रेट करने के लिए कॉन्फ़िगर किया जा सकता है)। इसे प्राप्त करने के लिए उपयोग करने का सबसे अच्छा तरीका क्या है? ऐप में पहले से ही डेटा स्रोत बीन्स परिभाषित हैं लेकिन फ्लाईवे केवल प्राथमिक डेटा स्रोत के लिए माइग्रेशन निष्पादित करता है।स्प्रिंग बूट एप्लिकेशन में फ्लाईवे का उपयोग करके एकाधिक डेटा स्रोत माइग्रेशन
उत्तर
फ्लाईवे जावा के भीतर कोडित माइग्रेशन का समर्थन करता है और इसलिए आप अपने एप्लिकेशन स्टार्टअप के दौरान फ्लाईवे शुरू कर सकते हैं।
https://flywaydb.org/documentation/migration/java
मुझे यकीन नहीं है कि आप इसकी कॉन्फ़िगरेशन फ़ाइलों के माध्यम से कई डेटा स्रोतों को लक्षित करने के लिए फ्लाईवे कॉन्फ़िगर कैसे करेंगे। मेरा खुद का विकास जावा डेटा का उपयोग करके फ्लाईवे को कॉल करने के लिए आधारित है, प्रति डेटा स्रोत के बाद मुझे काम करने की आवश्यकता है। स्प्रिंग बूट @FlywayDataSource के रूप में चिह्नित बीन्स की ऑटोवायरिंग का समर्थन करता है, लेकिन मैंने यह नहीं देखा है कि इसका उपयोग कैसे किया जा सकता है।
एक में जावा समाधान कोड के रूप में सरल रूप में
Flyway flyway = new Flyway();
// Set the data source
flyway.setDataSource(dataSource);
// Where to search for classes to be executed or SQL scripts to be found
flyway.setLocations("net.somewhere.flyway");
flyway.setTarget(MigrationVersion.LATEST);
flyway.migrate();
@Roger थॉमस स्प्रिंग बूट तरह से अधिक का जवाब करने के लिए हो सकता है के लिए:
सबसे आसान समाधान अपनी प्राथमिक डेटा स्रोत टिप्पणी करने के लिए है @Primary
(जो आपने पहले से किया है) के साथ और बस बूटस्ट्रैप को अपने प्राथमिक डेटा स्रोत को 'सामान्य' तरीके से माइग्रेट करने दें।
अन्य datasources के लिए, हाथ से उन स्रोतों की ओर पलायन:
@Configuration
public class FlywaySlaveInitializer {
@Autowired private DataSource dataSource2;
@Autowired private DataSource dataSource3;
//other datasources
@PostConstruct
public void migrateFlyway() {
Flyway flyway = new Flyway();
//if default config is not sufficient, call setters here
//source 2
flyway.setDataSource(dataSource2);
flyway.migrate();
//source 3
flyway.setDataSource(dataSource3);
flyway.migrate();
}
}
- 1. फ्लाईवे जावा आधारित माइग्रेशन
- 2. स्प्रिंग बूट: एकाधिक रेस्टकंट्रोलर
- 3. स्प्रिंग बूट प्रॉपर्टी फ़ाइल
- 4. फ्लाईवे
- 5. स्प्रिंग बूट एप्लिकेशन
- 6. फ्लाईवे डीबी/माइग्रेशन
- 7. फ्लाईवे माइग्रेशन "संपीड़ित" करने का कोई तरीका?
- 8. स्प्रिंग बूट एप्लिकेशन में वेबस्पेयर स्वतंत्रता का उपयोग कैसे करें
- 9. स्प्रिंग बूट एप्लिकेशन में lombok.Data एनोटेशन का उपयोग कैसे करें?
- 10. स्प्रिंग बूट
- 11. एनोटेशन आधारित स्प्रिंग बूट एप्लिकेशन
- 12. स्प्रिंग बूट एकाधिक लॉग फ़ाइलें
- 13. स्प्रिंग बूट एप्लिकेशन लॉग स्तर
- 14. स्प्रिंग बूट
- 15. स्प्रिंग बूट एप्लिकेशन में प्रति निर्भरता
- 16. उत्पादन डेटाबेस पर फ्लाईवे - माइग्रेशन चेकसम मिस्चैच
- 17. स्प्रिंग-बूट
- 18. स्प्रिंग-बूट
- 19. स्प्रिंग-बूट
- 20. पता लगाया गया हल माइग्रेशन फ्लाईवे
- 21. स्प्रिंग बूट
- 22. स्प्रिंग बूट एप्लिकेशन में स्प्रिंग सिक्योरिटी को कैसे बंद करें
- 23. स्प्रिंग बूट
- 24. स्प्रिंग बूट -
- 25. स्प्रिंग बूट
- 26. फ्लाईवे
- 27. स्प्रिंग बूट
- 28. स्प्रिंग बूट
- 29. स्प्रिंग बूट
- 30. स्प्रिंग बूट
स्प्रिंग बूट बना सकते हैं और स्टार्टअप के दौरान तो पर सेम और चलाने के तरीकों कॉन्फ़िगर करने के लिए अनुकूली ऑटो विन्यास वर्गों की एक श्रृंखला पर निर्भर करता है। फ्लाईवे एक {org.springframework.boot.autoconfigure.flyway.FlywayAutoConfiguration} पर पाया जा सकता है ताकि आप मूल रूप से इस वर्ग से आवश्यक कोड की प्रतिलिपि बना सकें। मैं बस एक ही चीज़ का प्रयास करने जा रहा हूं। – Luke