JavaRush /جاوا بلاگ /Random-SD /اسپرنگ بوٽ + فلائي وي - "جاوا پروجيڪٽ A کان Z تائين"

اسپرنگ بوٽ + فلائي وي - "جاوا پروجيڪٽ A کان Z تائين"

گروپ ۾ شايع ٿيل
جاوا پروجيڪٽ ٺاهڻ بابت هڪ سيريز مان هڪ مضمون (ٻين مواد جي لنڪ آخر ۾ آهن). ان جو مقصد اهم ٽيڪنالاجي جو تجزيو ڪرڻ آهي، نتيجو هڪ ٽيليگرام بوٽ لکڻ آهي. هن حصي ۾، اسان اسپرنگ بوٽ ۽ فلائي وي کي لانچ ڪرڻ جي ڪوشش ڪندا آهيون. نظريي جي گھٽ ۾ گھٽ مقدار، جيئن توھان چاھيو))) اسان Flyway/Liquibase جي آخري مقابلي کي غير معینہ مدت تائين ختم ڪريون ٿا ۽ نقطي تي پھچي وڃون ٿا. ۽ ان جي باوجود اهو اڳ ۾ ئي ڇڪي چڪو آهي. Flyway کي ٻه ڀيرا بيان نه ڪرڻ لاء، مون ان کي فوري طور تي اسان جي مستقبل جي JRTB منصوبي ۾ شامل ڪرڻ جو فيصلو ڪيو."جاوا پروجيڪٽ A کان Z تائين": اسپرنگ بوٽ + فلائي وي - 1

اسان کي هن حصي جي طور تي ڇا ڪرڻ جي ضرورت آهي؟

  1. لانچ ڪريو اسپرنگ بوٽ ايپليڪيشن ميون جي بنياد تي.
  2. اتي Flyway شامل ڪريو: خوش قسمت، اهي آساني سان ضم ٿي ويا آهن.
  3. جدولن لاءِ اسڪيما شامل ڪريو جيڪي اسان وٽ مثال ڊيٽابيس ۾ آھن.
هن طريقي سان اسان سکنداسين ته فلائي وي سان ڪيئن ڪم ڪجي. ڇو هڪ الڳ منصوبو، ۽ فوري طور تي اسان جي JRTB ۾ نه؟ ڇو ته بعد ۾، جيڪو به اهو سمجهڻ چاهي ٿو ته اهو ڪيئن ڪجي، هڪ مثال سان هڪ پروجيڪٽ ۽ هڪ مضمون هوندو جيڪو ان سان ڪم ڪرڻ جي وضاحت ڪري ٿو. چڱو، اچو ته وڃو!

پرواز جو رستو ڇا آهي

ڪنهن شيءِ کي استعمال ڪرڻ لاءِ، توهان کي پهريان ڄاڻڻ جي ضرورت آهي ته اهو ڇا آهي ۽ ڇو. Flyway هڪ ڊيٽابيس ورزن ڪنٽرول اوزار آهي. لفظ چڱي ريت سڃاتل آھن، پر ڪجھھ سمجھ ۾ شامل نه ڪيو ويو آھي، صحيح؟ اچو ته ان مسئلي کي بيان ڪرڻ جي ڪوشش ڪريون جيڪو فلائي وي حل ڪري ٿو. اچو ته اسان وٽ ھڪڙو منصوبو آھي. اسان جي دنيا ۾ هر شيء وانگر، اهو مڪمل ناهي، تنهنڪري اهو ممڪن ناهي ته منصوبي جي آخري نسخي کي منصوبابندي ڪرڻ ۽ تيار ڪرڻ. هر دفعي ڪجهه غير حساب ڪتاب ظاهر ٿيندا آهن. پروجيڪٽ پنهنجي ڪم ۾ ڊيٽابيس استعمال ڪري ٿو. يقينا، جيڪڏهن پروجيڪٽ تبديل ٿئي ٿي، ڊيٽابيس جي جوڙجڪ پڻ تبديل ٿي سگهي ٿي. اچو ته اسان کي اسان جي منصوبي ۾ ادارن مان هڪ لاء نئين فيلڊ شامل ڪريو. اهو ڪيئن ڪجي؟
  1. ھن فيلڊ کي اسان جي اداري ۾ شامل ڪريو، سڀڪنھن شيء کي اپڊيٽ ڪريو ته جيئن ڪاروبار منطق ڪم ڪري.
  2. ڊيٽابيس کي اپڊيٽ ڪريو. صرف ممڪن طريقو اهو آهي ته اهو دستي طور تي ڪيو وڃي. هن کي ڪرڻ لاء، توهان کي اندر وڃڻ جي ضرورت آهي ۽ رجسٽر ڪرڻ ضروري آهي sql اسڪرپٽ.
ٻيو نقطو ڪيترن ئي سوالن کي جنم ڏئي ٿو:
  1. پر جيڪڏهن اسان وٽ هڪ کان وڌيڪ جڳهون آهن جتي اسان پنهنجي پروجيڪٽ کي ترتيب ڏيون ٿا، ته پوءِ انهن مان هر هڪ ۾ ائين ڪرڻ جي ضرورت آهي؟
  2. ۽ جيڪڏهن اسان واپس وڃڻ چاهيون ٿا، ته اسان کي ڪيئن معلوم ٿيندو ته ڊيٽابيس جي جوڙجڪ ڪهڙي حالت ۾ آهي؟
  3. اسان ڪيئن پڪ ڪري سگهون ٿا ته ڊيٽابيس جي تبديلي ڪامياب هئي؟
  4. مان ڪيئن حاصل ڪري سگهان ٿو سڀني ڊيٽابيس جي تبديلين کي ٽريڪ ڪرڻ جو موقعو جيڪو پروجيڪٽ تي ٿي چڪو آهي؟
جيڪڏهن توهان اهو دستي طور ڪريو ٿا، جواب بهترين نه هوندا... انهن سڀني مشڪلاتن کان بچڻ لاءِ، توهان استعمال ڪري سگهو ٿا ڊيٽابيس لڏپلاڻ وارو اوزار. انهن مان هڪ آهي Flyway. هن جو ڪم ڇا آهي؟ پروجيڪٽ جي حصي جي طور تي، اسان الڳ الڳ sql فائلون (نام نهاد لڏپلاڻ) کي ذخيرو ڪندا آهيون، جيڪي هر شي کي ذخيرو ڪندا آهيون جيڪو اسان ڊيٽابيس سان گڏ ڪندا آهيون هڪ وقت ۾. سڀئي لڏپلاڻ هڪ خاص ترتيب ۾ سختي سان ٿينديون آهن، جيڪا توهان کي ڊيٽابيس جي جوڙجڪ ۽ ڊيٽا ۾ تبديلين کي ٽريڪ ڪرڻ جي اجازت ڏئي ٿي (اڪثر ڪري، لڏپلاڻ استعمال ڪندي، ٽيسٽ ڊيٽا پروجيڪٽ ۾ شامل ڪئي وئي آهي، انهي ڪري ته جڏهن اهو ڪجهه سرور تي لڳايو وڃي ٿو، ان ۾ اڳ ۾ ئي ڪجهه آهي. قدر جنهن سان توهان پروجيڪٽ کي جانچي سگهو ٿا). ٽيسٽ پاس ٿيڻ کان پوء، لڏپلاڻ شروع ٿينديون آهن جڏهن پروجيڪٽ ٺاهي وئي آهي. اهي ڊيٽابيس سان ڳنڍيندا آهن ۽ لڏپلاڻ ڪندا آهن. جيڪڏهن هن ڊيٽابيس تي لڏپلاڻ اڳ ۾ ئي ٿي چڪي آهي، ته پوءِ فلائي وي انهن کي ڇڏي ڏيندو (اهو لڏپلاڻ ۽ انهن جي اسٽيٽس تي ڊيٽا ڊيٽابيس ۾ هڪ الڳ جدول ۾ محفوظ ڪري ٿو، جيڪو انهن کي منظم ڪرڻ ۾ مدد ڪري ٿو) ۽ جيڪڏهن ڪجهه لڏپلاڻ ناڪام ٿي وئي ته پوءِ پروجيڪٽ. تعمير ڪريو ۽ سرور تي ان جي چڙھائي (تعميراتي) بند ٿي ويندي. مون ان کي ممڪن حد تائين تفصيل سان بيان ڪرڻ جي ڪوشش ڪئي. جيڪڏهن هر شي اڃا تائين مڪمل طور تي واضح نه آهي، اهو مسئلو ناهي: مشق سان، سمجهه ايندي.

اسپرنگ بوٽ + فلائي وي لانچ ڪريو

بهار بوٽ ڇا آهي

اسان ڇا شروع ڪري رهيا آهيون؟... سمجھڻ لاءِ ته اسان ڇا ۽ ڇو ڪري رهيا آهيون، توهان کي اهو فيصلو ڪرڻو پوندو ته اسپرنگ بوٽ ڇا آهي. پهرين، اچو ته جلدي (چڱو، تمام جلدي) بهار جي باري ۾ ڳالهايو . هن وقت، اهو جاوا ۾ سرور ايپليڪيشنن کي ترقي ڪرڻ ۾ فيڪٽو انڊسٽري معيار آهي. ڇا جو معيار؟ مان توهان کي اهو ڪيئن بيان ڪري سگهان ٿو؟ اسپرنگ ايپليڪيشن جو کنڊر آهي، جنهن تي اسين پوءِ اڇلايون ٿا ”گوشت“ - اسان جي ڪاروباري منطق. بهار جي مدد سان (هتي مان هي ٽريسنگ پيپر استعمال ڪندس ته جيئن ٻوليون مٽائڻ ۾ وقت ضايع نه ٿئي :D)) بهار اسان کي هڪ شروعات ڏئي ٿي جتان اسان سڀ ڪجهه ڪرڻ شروع ڪريون ٿا. اهو گهڻ رخي، گهڻ ماڊلر آهي:
  1. ڇا توھان ڊيٽابيس سان ڪم ڪرڻ چاھيو ٿا؟ ڇا توهان لاڳاپو چاهيو ٿا؟ ڇا توهان غير لاڳاپا چاهيو ٿا؟ هتي اسان بهار جي ڊيٽا سان گڏ آهيون.
  2. ڇا توھان http درخواستن سان ڪم ڪرڻ چاھيو ٿا؟ هتي توهان وڃو، اسپرنگ ويب (اسپرنگ ايم وي سي).
  3. ڇا توھان کي ھڪڙي جڳھ ۾ توھان جي سڀني شين لاءِ ڪنٽينر جي ضرورت آھي؟ هتي اسپرنگ ڪور آهي.
  4. ڇا توهان کي هڪ منصوبي تي سيڪيورٽي قائم ڪرڻ جي ضرورت آهي ته جيئن مختلف ڪردار ۽ حڪم جي زنجير آهن؟ بهار سيڪيورٽي.
  5. بس جڏهن توهان سوچيو ته اهڙي شيءِ حاصل ڪرڻ سٺو لڳندو، اهو ظاهر ٿئي ٿو ته بهار اڳ ۾ ئي آهي جيڪو توهان کي گهربل آهي، ۽ اهو جلدي ۽ آساني سان ضم ٿي وڃي ٿو.
تنهن ڪري، اسان اهو چئي سگهون ٿا ته اهو صرف هڪ فريم ورڪ نه آهي (اهڙي وڏي لائبريري)، پر هڪ مڪمل ماحولياتي نظام آهي جيڪو هڪ تيز رفتار سان ترقي ڪري رهيو آهي. سمجھڻ لاءِ ته اسپرنگ ڪور ڇا آھي، اھو آھي، بنيادي طور جنھن سان ماڊلز جڙيل آھن، مان توھان کي صلاح ڏيان ٿو پنھنجي فريم ورڪ ٺاھڻ تي ھڪ لائيو ڊيمو ڏسو . اهو Evgeny Borisov طرفان ميزبان آهي، جاوا ۽ بهار جي ميدان ۾ هڪ تمام ٿڌو ماڻهو. سڀڪنھن شيء کي هن ڪيو، ۽ بهار جي ڪم اوھان کي وڌيڪ واضح ٿي ويندو. اسپرنگ بوٽ، موڙ ۾، انهن جي هر شيء جو چوٽي آهي. خالص پاڻي جو جادو. ايپليڪيشن جي پهرين لانچ ڪرڻ لاءِ گهٽ ۾ گهٽ سيٽنگون. يقينا، اهو توهان کي سمجھڻ نه ڏيندو ته ان کي ڪيئن استعمال ڪجي ۽ ڇا ڪجي. پر ترقي جي کوٽائي ۾ جلدي ڪرڻ کان اڳ، توهان کي هر شيء کي پکيء جي نظر کان ڏسڻ جي ضرورت آهي.

اسپرنگ بوٽ لانچ ڪرڻ

جيئن ته اسان اڳ ۾ ئي سمجهي چڪا آهيون Maven ڇا آهي، اچو ته اسان جي ضرورتن لاء هڪ نئون منصوبو ٺاهيو. هن کي ڪرڻ لاء، توهان کي صرف هڪ ويب سائيٽ ڏانهن وڃڻ جي ضرورت آهي خاص طور تي هن معاملي لاء ٺهيل. ان کي بهار جي شروعات سڏيو ويندو آهي . "جاوا پروجيڪٽ A کان Z": اسپرنگ بوٽ + فلائي وي - 2هتي توهان کي ڀرڻ جي ضرورت آهي ۽ چونڊيو جيڪو توهان جي ضرورت آهي:
  1. منصوبي جي تعمير جو اوزار gradle يا maven آهي. جئين توهان ڏسي سگهو ٿا، اينٽ جو هاڻي ذڪر نه ڪيو ويو آهي. هي هڪ سٺو اشارو آهي جنهن جي باري ۾ تعمير جا اوزار توهان جي وقت جي قابل آهن.
  2. جيڪا ٻولي توهان لکي سگهو ٿا اها آهي جاوا، ڪوٽلن، گرووي. هتي سڀ ڪجهه سادو آهي: اهي سڀئي JVM-جهڙا آهن ۽ آساني سان جاوا ڪوڊ هلائيندا آهن. رستي جي ذريعي، اهو ڪوٽلن کي ڏسڻ جي قابل آهي. گرووي صاف طور تي غير دلچسپ ٿي چڪو آهي (هڪ وقت هو جڏهن اهي گرووز ڏانهن تبديل ٿي ويا، پر اهو جلدي گذري ويو).
  3. بهار جو نسخو... هتي توهان کي سمجهڻ جي ضرورت آهي ته بهار جي مکيه حصي جا ورجن ۽ ان جا ماڊل هڪجهڙائي رکن ٿا.
  4. پروجيڪٽ ڊيٽا. مون اڳ ۾ ئي اهي شيون بيان ڪيون آهن.
  5. اسان چونڊيو ٿا ته ڪهڙو آرٽيڪل گڏ ڪيو ويندو - جار يا جنگ.
  6. خير، جاوا نسخو اسان جي پسنديده. ۽ تازو اهڙا ڪيترائي نسخا آيا آهن... انهن سالن کان انتظار ڪيو، ۽ هاڻي سال ۾ ٻه آهن.
اسان جي صورت ۾، اسان هن پروجيڪٽ کي JavaRush ڪميونٽي تنظيم ۾ شايع ڪنداسين ، تنهنڪري پروجيڪٽ بابت معلومات مناسب هوندي:
  1. Maven - اهو ڪجهه به ناهي ته اسان توهان سان هن بابت اڳ ڳالهايو.
  2. جاوا اسان جو پيارو آهي: ڊي
  3. اچو ته ورجن 2.2.11 وٺون. جديد ترين ڇو نه؟ ڇاڪاڻ ته اهو جيترو نئون آهي، اوترو ئي وڏو موقعو آهي ته اتي ڪي ڪي ڪيڙا هجن. اسان لاء، اهو مسئلو ناهي ته ڪهڙو نسخو، پر پراڻو هڪ وڌيڪ قابل اعتماد هوندو. تنهن ڪري، اسان چونڊيو 2.2.11.
  4. گروپ: com.github.javarushcommunity
  5. آرٽيڪل: اسپرنگ بوٽ-فلائي وي-ڊيمو
  6. نالو: SpringBoot + Flyway Demo
  7. تفصيل: پروجيڪٽ اسپرنگ بوٽ ۽ فلائي وي جي وچ ۾ انضمام کي ظاهر ڪري ٿو . (ها، دستاويز لکڻ جي صلاحيت ترقي جو هڪ اهم حصو آهي :))
  8. پيڪيج جو نالو: com.github.javarushcommunity.springbootflywaydemo . هتي اهي فوري طور تي اسان لاءِ هڪ بنيادي پيڪيج ٺاهيندا هڪ ڪلاس سان جيڪو اسان جي ايپليڪيشن کي لانچ ڪندو.
  9. پيڪنگنگ: جار
  10. جاوا: 8. اچو ته اڳتي نه وڃو لووموموٽو ۽ سٺي پراڻي اٺ کي وٺو. 11 ڇو نه؟ ڇا لاءِ؟ اسان جي مثال لاء، مون کي نقطي نظر نه ٿو اچي.
"جاوا پروجيڪٽ A کان Z تائين": اسپرنگ بوٽ + فلائي وي - 3ھاڻي اچو ته ماڊل شامل ڪريون. اسان کي Flyway سان انضمام ڳولڻ جي ضرورت آهي. توھان پڻ شامل ڪري سگھو ٿا ڪجھھ لاڳاپيل آھي MySQL ۽ اسپرنگ ڊيٽا سان. اچو ته هڪ ٻيو لومبوڪ شامل ڪريون (اها هڪ تمام ضروري شيءِ آهي، بس هاڻي مون تي ڀروسو ڪريو :D)) اهو ڪرڻ لاءِ، ADD DEPENDENCIES تي ڪلڪ ڪريو ... ۽ هر شيءِ کي چونڊيو جيڪو توهان کي گهربل آهي: "جاوا پروجيڪٽ A کان Z تائين": اسپرنگ بوٽ + فلائي وي - 4هن طرح اسان Flyway کي شامل ڪريون ٿا. "جاوا پروجيڪٽ A کان Z": اسپرنگ بوٽ + فلائي وي - 5Lombok... وغيره. نتيجي طور، اسان حاصل ڪيو: "جاوا پروجيڪٽ A کان Z": اسپرنگ بوٽ + فلائي وي - 6ها... اسان سڀ ڪجهه ڀريو)) هاڻي ڪلڪ ڪريو GENERATE... ۽ اهو ئي آهي - ٺاهيل پروجيڪٽ سان گڏ آرڪائيو تيار آهي :) SHARE وانگر هڪ بهترين شيء آهي ... , جيڪو توهان کي انهي صفحي جي لنڪ ڏئي ٿو جيڪو توهان ڀريو آهي. اھو آھي، ھتي ھڪڙو آھي جيڪو مون ٺاھيو آھي . ۽ جيتوڻيڪ جيڪڏهن ڪجهه غلط ٿي وڃي، توهان هميشه لنڪ استعمال ڪندي چيڪ ڪري سگهو ٿا. اڳيون، اسان کي ٺاهيل پروجيڪٽ کي Git مخزن سان ڳنڍڻ جي ضرورت آهي، تنهنڪري اسان ٺاهيل اسپرنگبوٽ-فلائي وي-ڊيمو پروجيڪٽ کي کلون ڪيو ۽ ان کي IDEA ذريعي ڊائون لوڊ ڪيو. هن کي ڪرڻ لاء، توهان کي خيال کولڻ جي ضرورت آهي ۽ فائل چونڊيو -> نئون -> موجوده ذريعن مان پروجيڪٽ... : "جاوا پروجيڪٽ A کان Z تائين": اسپرنگ بوٽ + فلائي وي - 7هاڻي URL شامل ڪريو ۽ ڪلون تي ڪلڪ ڪريو . ايندڙ قدم اهو آهي ته ٺاهيل پروجيڪٽ جي اندروني حصن کي منتقل ڪرڻ جيڪو اسان ڪلون ڪيو آهي. مونجهارو؟ مان توهان کي هاڻي ڏيکاريندس. مون ان کي زپ ڪيو ۽ فائلن جو ھيٺيون سيٽ حاصل ڪيو: "جاوا پروجيڪٽ A کان Z": اسپرنگ بوٽ + فلائي وي - 8انھن کي ڪلون ٿيل پروجيڪٽ ڏانھن منتقل ڪرڻ جي ضرورت آھي. جيئن پوئين مضمون ۾، اچو ته شامل ڪريون pom.xml هڪ maven پروجيڪٽ جي طور تي: "جاوا پروجيڪٽ A کان Z": اسپرنگ بوٽ + فلائي وي - 9هاڻي اسان اهو ڏسڻ ۾ دلچسپي رکون ٿا ته اسان لاءِ ڇا ٺاهيو ويو هو. جيڪڏهن توهان سڀني فولڊرن کي src ۾ کوليو ۽ اڳتي وڌو، توهان Maven پروجيڪٽ ۾ معمولي حدن کي ڏسندا، جنهن تي اسان گذريل مضمون ۾ بحث ڪيو . انهن لاءِ جن نه پڙهيو آهي، پڙهو! "جاوا پروجيڪٽ A کان Z": اسپرنگ بوٽ + فلائي وي - 10اهو ڏسي سگھجي ٿو ته اسان وٽ هڪ ايپليڪيشن ڪلاس آهي، ۽ اسان جي اسپرنگ بوٽ ايپليڪيشن ان کي استعمال ڪندي شروع ڪئي ويندي. اسپرنگ بوٽ لاءِ Maven پلگ ان جي مهرباني، اسان وٽ هاڻي اهو ڪم آهي جيڪو اسان کي Maven لاءِ گهربل آهي، يعني spring-boot:run. اسان هي معلومات ڪٿي ڳولي سگهون ٿا؟ ساڄي پاسي، Maven پليٽ کولڻ ۽ اسان جي پروجيڪٽ: "جاوا پروجيڪٽ A کان Z": اسپرنگ بوٽ + فلائي وي - 11اتي هڪ غلطي ٿيندي، ۽ اسان ان کي پڙهڻ جي قابل نه هوندا، اسان ڪجهه هن طرح ڏسندا سين: "جاوا پروجيڪٽ A کان Z تائين": اسپرنگ بوٽ + فلائي وي - 12وڌيڪ معلومات حاصل ڪرڻ لاء، رفتار لاء اسين مکيه طريقي سان هلائي سگهون ٿا ايپليڪيشن ڪلاس جو: "جاوا پروجيڪٽ A کان Z": اسپرنگ بوٽ + فلائي وي - 13۽ پوءِ اسان ڏسنداسين اصل سبب: "جاوا پروجيڪٽ A کان Z": اسپرنگ بوٽ + فلائي وي - 14هتي اڳ ۾ ئي وڌيڪ معلومات آهي ۽ توهان ان سان ڪجهه ڪري سگهو ٿا. مسئلو ڇا آهي؟ اسان وٽ ڊيٽابيس سان لاڳاپيل انحصار آهي، ۽ تنهنڪري اسان کي ان سان ڳنڍڻ لاء سيٽنگون مهيا ڪرڻ جي ضرورت آهي. ائين ڪرڻ لاءِ، اسان گوگل ڪيو ۽ ڳولهيو ته اسان کي هيٺين ترتيبن کي شامل ڪرڻ جي ضرورت آهي application.properties ۾:
spring.datasource.url=jdbc:mysql://localhost:3306/flyway_demo_db
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
اسان مکيه طريقو ٻيهر هلون ٿا ۽ حاصل ڪريو: "جاوا پروجيڪٽ A کان Z": اسپرنگ بوٽ + فلائي وي - 15هاڻي اسان کي گهٽ ۾ گهٽ هڪ لڏپلاڻ شامل ڪرڻ جي ضرورت آهي. لڏپلاڻ کي صحيح طريقي سان ترتيب ڏيڻ لاءِ، توهان کي هيٺيون ٽيمپليٽ وٺڻو پوندو: V<VERSION>__<NAME>.sql هن ٽيمپليٽ کي استعمال ڪندي، اسان مناسب فولڊر ۾ V00001__Create_country_table.sql نالي هڪ لڏپلاڻ فائل ٺاهينداسين : /src/main/resources/ db.migration/ . اچو ته ان ۾ ملڪ جي ٽيبل ٺاهي. اچو ته ڊيٽابيس جي باري ۾ ٻئي مضمون مان اسڪرپٽ وٺون . "جاوا پروجيڪٽ A کان Z": اسپرنگ بوٽ + فلائي وي - 16شروع ڪرڻ کان اڳ، اچو ته اندر وڃو ۽ ڪم لاءِ ڊيٽابيس ٺاھيون: flyway_demo_db. اچو ته هن کي MysqlWorkbench ذريعي ڪريون: "جاوا پروجيڪٽ A کان Z": اسپرنگ بوٽ + فلائي وي - 17هاڻي اسان ٻيهر مکيه طريقي سان هلائي سگهون ٿا: "جاوا پروجيڪٽ A کان Z تائين": اسپرنگ بوٽ + فلائي وي - 18سڀ ڪجهه ڪم ڪيو، پر جيئن ته اسان وٽ اڃا تائين پروجيڪٽ ۾ ڪجهه ناهي، اهو ڪم ڪري چڪو آهي. بهرحال، اهو لاگز مان واضح آهي ( پڙهو ڇا لاگ آهن ) ته:
  1. ڊيٽابيس سان ڪاميابي سان ڳنڍيل.
  2. لڏپلاڻ جي تصديق ڪئي وئي آهي ۽ سڀ ڪجهه ٺيڪ آهي.
  3. Flyway لڏپلاڻ کي منظم ڪرڻ لاء هڪ ٽيبل ٺاهيو آهي.
  4. ۽ ڪهڙي لڏپلاڻ 00001 شروع ٿي - ملڪ جي تخليق ڪامياب ٿي وئي.
هن کي چيڪ ڪرڻ لاء، توهان وڃو ۽ ڏسو ته ڊيٽابيس ۾ ڇا ڪيو پيو وڃي. سو اچو ته اسان جي MySQL سرور تي وڃو ۽ ڏسون ته flyway_demo_db ڊيٽابيس ۾ ٽيبلن سان ڇا ٿي رهيو آهي: $USE flyway_demo_db; $ SHOW ٽيبل؛ "جاوا پروجيڪٽ A کان Z": اسپرنگ بوٽ + فلائي وي - 19جيئن مون توقع ڪئي، هڪ لڏپلاڻ ٿي، جنهن دوران ملڪ جي ٽيبل ٺاهي وئي ۽ flyway_schema_history ٽيبل ظاهر ٿيو، جيڪو لڏپلاڻ تي معلومات محفوظ ڪري ٿو. اچو ته اڳتي وڃو ۽ ڏسو ته ڪهڙا رڪارڊ موجود آهن (۽ ڇا اهي سڀ ڪجهه آهن). $SELECT * flyway_schema_history کان؛ "جاوا پروجيڪٽ A کان Z تائين": اسپرنگ بوٽ + فلائي وي - 20هتي رڪارڊنگ آهي، صرف هڪ. اهو ڪيترن ئي دلچسپ ڊيٽا تي مشتمل آهي. نسخو، لڏپلاڻ جو بيان، ڪهڙي قسم جو SQL (۽ شايد XML پڻ)، اسڪرپٽ جو نالو پاڻ، چيڪسم ( هي هيش ڪوڊ وانگر آهي، جيڪو استعمال ڪيو ويندو آهي ته ڇا لڏپلاڻ تبديل ٿي وئي آهي يا نه. ان صورت ۾ جڏهن اسان ڊيٽابيس ۾ لڏپلاڻ ڪئي ۽ پوءِ ان کي درست ڪيو ويو: اهو نه ٿو ڪري سگهجي، سڀ تبديليون صرف هڪ نئين لڏپلاڻ ذريعي ڪيون وينديون آهن ۽ ان کي ٿيڻ کان روڪڻ لاءِ، چيڪ جي رقم هن کي مانيٽر ڪري ٿي) استعمال ڪندڙ sql نالو، لڏپلاڻ پروسيسنگ تاريخ، عمل جو وقت ۽ نتيجو (ڪامياب يا ناڪام). هڪ ڀيرو لکيل لڏپلاڻ مستقبل ۾ تبديل نه ٿيڻ گهرجي. توڙي جو ان ۾ ڪو عيب هجي. سڀ تبديليون صرف نئين لڏپلاڻ ذريعي ٿينديون آهن. اهو تمام ضروري آهي. اهو ڏيکارڻ لاءِ ته ڇا ٿيندو، اچو ته اسان جي اسڪرپٽ کي ٿورو تبديل ڪريون ۽ ان کي ٻيهر هلائڻ جي ڪوشش ڪريون. اچو ته اسان جي لڏپلاڻ ۾ ملڪ جي ٽيبل تي ھڪڙي داخلا شامل ڪريون: "جاوا پروجيڪٽ A کان Z تائين": اسپرنگ بوٽ + فلائي وي - 21۽ مکيه طريقو ھلايو ۽ اھو اھو آھي جيڪو اسان حاصل ڪيو: "جاوا پروجيڪٽ A کان Z تائين": اسپرنگ بوٽ + فلائي وي - 22جيئن مون توقع ڪئي، فلائي وي کي تسليم ڪيو ويو آھي ته اسڪرپٽ تبديل ڪئي وئي آھي ۽ لڏپلاڻ انجام نه ڏني وئي آھي. ڪجهه حالتن ۾، اهو اصل ۾ هڪ اپڊيٽ لڏپلاڻ کي هلائڻ لاء ضروري ٿي سگهي ٿو، ۽ هن کي ڇڏڻ لاء فلائي وي لاء، توهان کي flyway_schema_history ٽيبل ۾ داخل ٿيڻ کي ختم ڪرڻ جي ضرورت آهي ۽ پوء اپڊيٽ لڏپلاڻ کي هلائڻ جي ضرورت آهي. اهو عام رويو نه آهي ۽ نه هجڻ گهرجي، پر توهان کي پڻ ڄاڻڻ جي ضرورت آهي هن مسئلي کي حل ڪرڻ جو طريقو. اسان پهرين لڏپلاڻ سان معاملو ڪيو. هاڻي مان هڪ ٻي لڏپلاڻ شامل ڪرڻ چاهيان ٿو، ملڪن بابت ڊيٽا سان، جيئن ڊيٽابيس بابت آرٽيڪل ۾ هو: فائل V00002__Add_test_data_to_country.sql"جاوا پروجيڪٽ A کان Z تائين": اسپرنگ بوٽ + فلائي وي - 23 ۽ اچو ته مکيه طريقو ٻيهر هلون: "جاوا پروجيڪٽ A کان Z": اسپرنگ بوٽ + فلائي وي - 24لاگن مان اهو واضح ٿئي ٿو ته لڏپلاڻ شروع ٿيڻ کان اڳ، ڊيٽابيس هئي. نسخو 00001 ۾، تنهنڪري سڀ لڏپلاڻ هن نسخي کان پوء. اڳيون، نسخو 00002 شروع ڪيو ويو ۽ ڪامياب ٿي ويو. اچو ته چيڪ ڪريو، يا ڇا توهان اڳ ۾ ئي مون تي يقين رکون ٿا ته ملڪ ۾ ٽي رڪارڊ اڳ ۾ ئي ڊيٽابيس ۾ هوندا؟)) مان چيڪ ڪندس، تنهنڪري ثبوت: "جاوا پروجيڪٽ A کان Z": اسپرنگ بوٽ + فلائي وي - 25ڪجهه هن وانگر. جيڪڏهن توهان پروجيڪٽ کي ٻيهر هلايو ٿا، فلائي وي صرف لڏپلاڻ کي رولنگ آئوٽ ڪري ڇڏيندو، ڇو ته ڊيٽابيس مڪمل طور تي گهربل ورزن سان مطابقت رکي ٿي.

نتيجو

هن ڀيري اسان سکيو ته ڪيئن سمجھجي ۽ استعمال ڪجي ڊيٽابيس لڏپلاڻ وارو اوزار SpringBoot سان گڏ. ھي معلومات ضروري آھي سمجھڻ لاءِ ته ڊيٽابيس ورجن ڪنٽرول ٽول ڇا آھي، مثال طور Flyway استعمال ڪندي. دوستو پراجيڪٽ جو سورس ڪوڊ جيڪو مون ڏيکاريو آهي اسان جي اداري ۾ Github تي شايع ٿيل آهي . جيڪڏھن توھان مثال پسند ڪريو، اھو ھڪڙو ستارو ڏيو ، ۽ مان سمجھندس ته منھنجو ڪم ڪارائتو آھي ۽ واقعي جاري رکڻ جي لائق آھي. روايتي طور تي، مان مشورو ڏيان ٿو رڪنيت حاصل ڪرڻ منهنجي Github اڪائونٽ . هن جي ذريعي آئون پنهنجو سمورو ڪم اوپن سورس ۽ انهن سڀني ڊيمو پروجيڪٽس تي ڪريان ٿو جيڪي هميشه منهنجي مضمونن سان گڏ هجن. پڙهڻ لاءِ سڀني جي مهرباني. ايندڙ وقت اسان جي درخواست لکنداسين. مستقبل ۾ ڊاڪر تي ڪجهه ضروري نظريو هوندو، پر اسان ان کي مشق سان تمام گهڻو ڪمزور ڪنداسين.

مفيد لنڪس

اڄ اتي ڪيترائي مفيد لنڪس نه آھن. Evgeniy جي وڊيو تي ڌيان ڏيو، اهو واقعي ان جي قابل آهي!
  1. بهار تي منصوبا ٺاهڻ لاءِ ويب سائيٽ
  2. Evgeniy Borisov - بهار جي تعمير ڪندڙ
  3. Flyway لاء بهار ۾ دستاويز

سيريز ۾ سڀني مواد جي هڪ فهرست هن مضمون جي شروعات ۾ آهي.

تبصرا
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION