مقاله ای از مجموعه ای در مورد ایجاد یک پروژه جاوا (لینک به سایر مواد در پایان است). هدف آن تجزیه و تحلیل فناوری های کلیدی است که نتیجه آن نوشتن یک ربات تلگرام است. در این قسمت سعی داریم SpringBoot و Flyway را راه اندازی کنیم. حداقل مقدار تئوری، همانطور که دوست دارید))) مقایسه نهایی Flyway/Liquibase را برای مدت نامحدودی حذف می کنیم و به اصل مطلب می رسیم. و حتی به این ترتیب از قبل طولانی شده است. برای اینکه Flyway را دوبار توصیف نکنم، تصمیم گرفتم فوراً آن را به پروژه آینده JRTB خود اضافه کنم.
چند وجهی، چند مدولار است:
به عنوان بخشی از این باید چه کاری انجام دهیم؟
- یک برنامه SpringBoot مبتنی بر Maven راه اندازی کنید.
- Flyway را به آنجا اضافه کنید: خوشبختانه، آنها به راحتی ادغام می شوند.
- یک طرح واره برای جداولی که در پایگاه داده مثال داریم اضافه کنید.
flyway چیست
برای استفاده از چیزی، ابتدا باید بفهمید که چیست و چرا. Flyway یک ابزار کنترل نسخه پایگاه داده است. کلمات معروف هستند، اما به نوعی درک اضافه نشده است، درست است؟ بیایید سعی کنیم مشکلی را که فلای وی حل می کند را شرح دهیم. فرض کنید یک پروژه داریم. مانند همه چیز در دنیای ما، کامل نیست، بنابراین امکان برنامه ریزی و ترسیم نسخه نهایی پروژه وجود نداشت. هر بار که برخی از تفاوت های ظریف بی توجه ظاهر می شوند. این پروژه در کار خود از پایگاه داده استفاده می کند. البته اگر پروژه تغییر کند، ممکن است ساختار پایگاه داده نیز تغییر کند. فرض کنید یک فیلد جدید برای یکی از موجودیت های پروژه خود اضافه می کنیم. چگونه انجامش بدهیم؟- این فیلد را به موجودیت ما اضافه کنید، همه چیز را به روز کنید تا منطق تجاری کار کند.
- پایگاه داده را به روز کنید. تنها راه ممکن این است که آن را به صورت دستی انجام دهید. برای این کار باید وارد شوید و اسکریپت sql لازم را ثبت کنید.
- اما اگر بیش از یک مکان داریم که پروژه خود را در آن مستقر می کنیم، آیا این کار در هر یک از آنها باید انجام شود؟
- و اگر بخواهیم به عقب برگردیم، چگونه متوجه شویم که ساختار پایگاه داده در حال حاضر دقیقا در چه وضعیتی است؟
- چگونه می توانیم مطمئن شویم که تغییر پایگاه داده موفقیت آمیز بوده است؟
- چگونه می توانم این فرصت را داشته باشم که تمام تغییرات پایگاه داده ای که در پروژه رخ داده است را ردیابی کنم؟
SpringBoot + Flyway را راه اندازی کنید
چکمه بهار چیست؟
چه چیزی را راه اندازی می کنیم؟... برای اینکه بفهمید چه کاری و چرا انجام می دهیم، باید تصمیم بگیرید که SpringBoot چیست. اول، اجازه دهید سریع (خوب، خیلی سریع) در مورد بهار صحبت کنیم . در حال حاضر، این استاندارد بالفعل صنعت در توسعه برنامه های کاربردی سرور در جاوا است. استاندارد چه چیزی؟ چگونه می توانم این را برای شما توضیح دهم؟ بهار اسکلت برنامه است که سپس "گوشت" را روی آن پرتاب می کنیم - منطق تجاری ما. با کمک Spring (از این پس از این مقاله ردیابی استفاده خواهم کرد تا زمان را برای تغییر زبان تلف نکنم:D)) بهار شروعی به ما می دهد که از آن شروع به انجام همه کارها می کنیم. این- آیا می خواهید با پایگاه داده کار کنید؟ رابطه میخوای؟ غیر رابطه ای میخوای؟ در اینجا ما با Spring Data هستیم.
- آیا می خواهید با درخواست های http کار کنید؟ در اینجا شما بروید، وب بهار (Spring MVC).
- آیا به یک ظرف برای همه اشیاء خود در یک مکان نیاز دارید؟ در اینجا هسته بهار است.
- آیا باید امنیت پروژه را طوری تنظیم کنید که نقش ها و زنجیره فرماندهی متفاوتی وجود داشته باشد؟ امنیت بهار.
- درست زمانی که فکر میکردید داشتن چنین چیزی خوب است، معلوم شد که Spring در حال حاضر آنچه شما نیاز دارید را دارد و به سرعت و به راحتی یکپارچه میشود.
راه اندازی SpringBoot
از آنجایی که ما قبلاً فهمیدیم Maven چیست، بیایید یک پروژه جدید برای نیازهای خود ایجاد کنیم. برای انجام این کار، فقط باید به وب سایتی که مخصوص این موضوع ایجاد شده است بروید. اسمش Spring Initializr هست . در اینجا باید موارد مورد نیاز خود را پر کرده و انتخاب کنید:- ابزار ساخت پروژه gradle یا maven است. همانطور که می بینید، دیگر حتی به مورچه اشاره نمی شود. این یک راهنمایی خوب در مورد اینکه کدام ابزار ساخت ارزش وقت شما را دارد است.
- زبانی که می توانید با آن بنویسید جاوا، کاتلین، groovy است. همه چیز در اینجا ساده است: همه آنها شبیه JVM هستند و به راحتی کدهای جاوا را اجرا می کنند. به هر حال، ارزش دیدن کاتلین را دارد. Groovy رک و پوست کنده جالب نشده است (زمانی بود که آنها به شیارها روی آوردند، اما به سرعت گذشت).
- نسخه Spring... در اینجا باید بدانید که نسخه های قسمت اصلی Spring و ماژول های آن سازگار هستند.
- داده های پروژه من قبلاً این موارد را شرح داده ام.
- ما انتخاب می کنیم که کدام بایگانی جمع آوری شود - کوزه یا جنگ.
- خوب، نسخه جاوا مورد علاقه ما. و اخیراً تعداد زیادی از این نسخه ها وجود داشته است ... آنها سال ها منتظر بودند و اکنون دو سال در سال وجود دارد.
- Maven - بیهوده نیست که قبلاً در این مورد با شما صحبت کردیم.
- جاوا عزیز ماست :D
- بیایید نسخه 2.2.11 را بگیریم. چرا جدیدترین نیست؟ زیرا هرچه جدیدتر باشد، احتمال وجود برخی از اشکالات در آن بیشتر است. برای ما مهم نیست کدام نسخه، اما نسخه قدیمی تر قابل اعتمادتر خواهد بود. بنابراین 2.2.11 را انتخاب می کنیم.
- گروه: com.github.javarushcommunity
- مصنوع: Springboot-flyway-demo
- نام: SpringBoot + Flyway Demo
- توضیحات: پروژه یکپارچگی بین SpringBoot و Flyway را نشان می دهد . (بله، توانایی نوشتن مستندات بخش مهمی از توسعه است :))
- نام بسته: com.github.javarushcommunity.springbootflywaydemo . در اینجا آنها بلافاصله یک بسته اولیه با کلاسی برای ما ایجاد می کنند که برنامه ما را راه اندازی می کند.
- بسته بندی: شیشه
- جاوا: 8. از لوکوموتیو جلوتر نرویم و هشت خوب قدیمی را بگیریم. چرا 11 نه؟ برای چی؟ برای مثال ما، من نکته ای را نمی بینم.
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
روش اصلی را دوباره اجرا می کنیم و می گیریم: حالا باید حداقل یک مهاجرت اضافه کنیم. برای ایجاد صحیح مهاجرت، باید الگوی زیر را بگیرید: V<VERSION>__<NAME>.sql با استفاده از این الگو، یک فایل مهاجرت به نام V00001__Create_country_table.sql در پوشه مناسب ایجاد می کنیم: /src/main/resources/ db.migration/ . بیایید یک جدول کشور در آن ایجاد کنیم. بیایید اسکریپت را از مقاله دوم در مورد پایگاه داده بگیریم . قبل از شروع، بیایید وارد شویم و یک پایگاه داده برای کار ایجاد کنیم: flyway_demo_db. بیایید این کار را از طریق MysqlWorkbench انجام دهیم: اکنون میتوانیم روش اصلی را دوباره اجرا کنیم: همه چیز درست شد، اما از آنجایی که هنوز چیزی در پروژه نداریم، کار به پایان رسید. با این حال، از لاگ ها ( بخوانید لاگ ها چیست ) مشخص است که:
- با موفقیت به پایگاه داده متصل شد.
- مهاجرت تایید شده است و همه چیز اوکی است.
- Flyway یک جدول برای مدیریت مهاجرت ایجاد کرده است.
- و چه مهاجرت 00001 آغاز شد - ایجاد کشور موفقیت آمیز بود.
GO TO FULL VERSION