2012-11-29 10 views
5

मैं डीबी माइग्रेशन के लिए फ्लाईवे कमांड लाइन टूल का उपयोग कर रहा हूं। अगर मैं एसक्यूएल निर्देशिका में एसक्यूएल माइग्रेशन डालता हूं तो यह ठीक काम करता है। हालांकि अगर मैं स्थान प्रॉपर्टी को फाइल सिस्टम पर पथ पर सेट करता हूं, तो यह बिना किसी चेतावनी या त्रुटि के विफल रहता है।फ्लाईवे कमांड लाइन फाइल सिस्टम पर माइग्रेशन खोजने में असमर्थ

उदाहरण के लिए

: flyway.locations=/file-path/

कैसे फ़ाइल सिस्टम पथ निर्दिष्ट करने के लिए? मैं अपने माइग्रेशन एसक्यूएल निर्देशिका में नहीं रखना चाहता हूं।

उत्तर

0

यह वर्तमान में अभी तक समर्थित नहीं है: https://github.com/flyway/flyway/issues/108

समाधान के लिए आप निर्देशिका आप उपयोग करना चाहते करने के लिए/एसक्यूएल सिमलिंक कर सकते हैं।

+0

त्वरित उत्तर के लिए धन्यवाद। क्या फ्लाईवे चींटी प्लगइन प्रत्येक स्कीम के लिए माइग्रेशन के लिए अलग-अलग स्थान के साथ कई स्कीमा का समर्थन करता है? मुझे पता है कि फ्लाईवे सामान्य रूप से करता है, लेकिन चींटी प्लगइन ऐसा नहीं लगता है। –

+0

एक फ्लाईवे का उपयोग करें: प्रत्येक के लिए माइग्रेट कॉल करें। यह भी देखें: http://flywaydb.org/documentation/faq.html#multiple-schemas –

+0

मैंने ऐसा करने की कोशिश की लेकिन दूसरा फ्लाईवे: माइग्रेट कॉल पहले माइग्रेटेड स्कीमा की schema_version तालिका का उपयोग करने लगता है। उन्हें व्यक्तिगत schema_version तालिका का उपयोग कैसे करें? –

0

आप स्ट्रिंग के साथ 'माइग्रेशन' निर्देशिका का निरपेक्ष पथ उपसर्ग चाहिए "फाइल सिस्टम:", इस तरह:

String path = "/my/project/sql/migrate/"; 
migrateRelease("filesystem:" + path); 
flyway.setLocations(location); 
flyway.migrate(); 
0

एक्सल के लिए धन्यवाद, यह संस्करण 3.2.1 पर काम कर रहा है। ध्यान देने के लिए एकमात्र शेष चीज आपकी माइग्रेशन फाइलों पर संस्करण संख्या है जो schema_version तालिका पर एक से अधिक होनी चाहिए। अन्यथा, माइग्रेट कमांड चलाने के बाद आप निम्न परिणाम के साथ समाप्त हो सकते हैं;

Flyway 3.2.1 by Boxfuse 

Database: jdbc:mysql://... 
Validated 1 migration (execution time 00:00.009s) 
Current version of schema `ref_db`: 1 
Schema `ref_db` is up to date. No migration necessary. 
संबंधित मुद्दे