نمایش نتایج 1 تا 18 از 18

نام تاپیک: راهکارهای بروز رسانی سیستم ها در محیط های عملیاتی - کار با Source Control

  1. #1

    راهکارهای بروز رسانی سیستم ها در محیط های عملیاتی - کار با Source Control

    با سلام خدمت دوستان گرامی
    در این پست قصد دارم در مورد چالشی که برای بروز رسانی سیستم ها مطرح کردم ، صحبت کنم.
    بذارید با یک چالش دیگه شروع کنم

    شما به عنوان یک برنامه نویس در تیمتون ، آیا از سورس کنترل استفاده می کنید؟
    اگر جواب مثبت هست خوب پس دیتابیستون رو چطور تحت سورس کنترل نگهداری می کنید؟
    آیا تا حالا نیاز پیدا کردید که مثلا چند نفر همزمان بر روی دیتابیس تغییراتی بدن ؟ بعد تغییرات رو چطوری مدیریت می کنید؟
    لاگ تغییرات رو چطوری نگه داری میکنید که مثلا نسخه قبل چی بوده نسخه جدید چی شده.؟

    خوب به نظرم سوال بسه.
    بریم سر جوابها.
    متاسفانه در SQL Server امکان اضافه کردن دیتابیس به سورس کنترل وجود نداره. بعضی از شرکتها مثل Red gate ابزاری دادند که به شما اجازه میدن دیتابیستون رو داخل سورس کنترل نگهداری کنید.
    یا مثلا از ابزاری مثل Flyway استفاده کنید و کاملا به صورت Command سورستون رو مدیریت کنید.

    نه صبر کنید. ....
    یک خبر خوب دارم براتون.

    با استفاده از Visual Studio شما یک پروژه به نام SQL Server Database Project دارید . که میتونید توسط ابزار SSDT Tools هم در نسخه های قبل نصبش کنید.
    خوب مزیت این ابزار چیه.

    روش کار کردن این ابزار به این شکل هست که کاملا مستقل از دیتابیس رفتار میکنه و کل دیتابیستون رو درمرحله اول به صورت اسکریپت داخل خودش اضافه میکنه.
    حالا شما کل این Solution رو به راحتی میتونید به سورس کنترل مورد نظر اضافه کنید.

    خوب حالا چی شما دارید و چه مزایایی رو داره این روش؟
    خوبی این روش این هست که هر کسی که میخواد کار بکنه Solution رو Checkout میکنه و روی WorkSpace خودش روی سورس کار میکنه و وقتی که Solution رو Deploy میکنه روی دیتابیس localdb سیستم خودش دیبایس اجرا میشه و به هیچ چیزی ارتباطی نداره و به راحتی میتونه کارهای خودش رو تست کنه.
    در نهایت کارهایی که انجام داده رو Check In میکنه.

    حالا شما نیاز به یک build Server داره که یک Compare با دیتابیس مقصد بکنه و یک Script از تغییرات به شما بده و کافیه فقط اون روی سیستم مقصد اجرا بشه بدون اینکه مشکلی برای داده ها ایجاد بشه یا چیزی از بین بره.( چطوری امکان داره؟؟ )
    شاید این سوال برای شما ایجاد شده باشه که مثلا یک فیلد رو نوعش رو عوض میکنیم تکلیف داده هاش چی میشه؟؟؟؟
    یا اگر یک ستون رو حذف کنیم یا یک ستون به جدولی که داده داره اضافه کنیم چی میشه؟
    هیچی در یک PreDeploy Script میتونید این مورد رو هندل کنید.

    یکی از زیبایی های این روش این هست که شما میتونید سیستم دیتابیس خودتون رو به روش TDD - Test Driven Development توسعه بدید.
    یعنی میتونید اولا Unit Test برای کدهاتون بنویسید بعد مثلا SP یا View بنویسید و وقتی دارید Solution رو Deploy میکنید اول Unit Test های شما اجرا میشه روی یک دیتابیس تست. بعد در نهایت اگه همه چیز بر وفق مراد بود حالا اسکریپت تغییرات بر روی سیستم مشتری یا QA اجرا میشه.

    امیدوارم تا همین جا یک دید کلی درمورد این ابزار فوق العاده کسب کرده باشید و بتونید از این به بعد با استفاده از این ابزار ، توسعه دیتابیس رو وارد چرخه مهندسی نرم افزار بکنید.
    سعی میکنم در پست بعدی یک مثال بدارم و نحوه کارش رو توضیح بدم که بیشتر باهاش آشنا بشید.

    منتظر نظرات دوستان عزیزم هستم.
    ارادتمند.

  2. #2

    نقل قول: راهکارهای بروز رسانی سیستم ها در محیط های عملیاتی - کار با Source Control

    با سلام و ضمن تشکر از شما جناب آقای صادقیان از اینکه بحث ارتقاء و کنترل بانکهای اطلاعاتی رو باز نمودید . راستش من از پست سودمند شما مواردی رو یاد گرفتم ولی فقط خواستم اشاره ای هم به تجربیات خودم بکنم و نظر شما و بقیه دوستان رو هم داشته باشم . شرکت ما سالهاست که برروی پروژههای گوناگون بانک اطلاعاتی اسکیوال کار میکنه و راستش اوایل یکی از مهمترین معضلات ما همین ارتقا بانک اطلاعاتی کاربرانمون بوده بدون اینکه اطلاعات موجود دچار آسیبی بشه . تا اینکه با ابزاری (البته غیر رایگان) بنام Sql Delta آشنا شدیم این ابزار براحتی این امکان رو به ما میده که بتونیم بانک اطلاعاتی مبدا (دیتابیس اصلی خودمون) رو با بانک اطلاعاتی مقصد مقایسه کنیم و بطور خودکار اسکرپتی را برامون میسازه که میتونه روی بانک اطلاعاتی مقصد هر نوع تغییری رو (حتی تغییر نوع فیلد) بده و براحتی آپدیت ساختار بانک اطلاعاتی انجام میشه . این ابزار حتی اطلاعات موجود در بانکهای اطلاعاتی رو میتونه با هم مقایسه کنه و اسکریپتی هم برای آپدیت اطلاعات دیتابیس مقصد برامون میسازه که بارها در اجرای پروژه های ما کارمون رو تسریع کرده . راستش الان که سالها از این نرم افزار استفاده کردبم کاملا بهش وابسته شدیم . به همین دلیل خواستم این تجربه با دوستانم در سایت برنامه نویس هم به اشتراک بگذارم تا شاید کمکی برای دوستان باشه .

  3. #3
    کاربر دائمی آواتار delphi77
    تاریخ عضویت
    مرداد 1383
    محل زندگی
    ایران تهران
    پست
    743

    نقل قول: راهکارهای بروز رسانی سیستم ها در محیط های عملیاتی - کار با Source Control

    مطلب خیلی مفیدی بود ولی من می خواستم بدانم در مورد MySQL هم ابزاری هست که بشه ورژن کنترلش کرد اگر هست اطلاعاتی در مودش بنویسید لطفا

  4. #4

    نقل قول: راهکارهای بروز رسانی سیستم ها در محیط های عملیاتی - کار با Source Control

    با سلام خدمت اساتید گرامی
    خواستم درمورد موضوع بحث شده تجربه خودم رو بگم
    در شرکتی که من کار میکردم کسی که مسئول طراحی دیتابیس بود فقط اجازه تغییرات در دیتابیس رو داشت و هرکسی که نظر یا ایده ای داشت باید به مسئول دیتابیس مطرح میکرد و پس از هماهنگی با تحلیلگر و تایید ، تغییرات اعمال میشد
    بازم ممنون از همه اساتید بزرگوار

  5. #5

    نقل قول: راهکارهای بروز رسانی سیستم ها در محیط های عملیاتی - کار با Source Control

    با سلام

    نقل قول نوشته شده توسط delphi77 مشاهده تاپیک
    مطلب خیلی مفیدی بود ولی من می خواستم بدانم در مورد MySQL هم ابزاری هست که بشه ورژن کنترلش کرد اگر هست اطلاعاتی در مودش بنویسید لطفا
    در این مورد اطلاعاتی ندارم. ولی جستجو میکنم و نتیجه رو اعلام می کنم.

    در شرکتی که من کار میکردم کسی که مسئول طراحی دیتابیس بود فقط اجازه تغییرات در دیتابیس رو داشت و هرکسی که نظر یا ایده ای داشت باید به مسئول دیتابیس مطرح میکرد و پس از هماهنگی با تحلیلگر و تایید ، تغییرات اعمال میشد
    این روش خیلی کاربردی نیست.
    فرض کنید تیم شما 50 نفره هست و 20 نفر نیاز دارند بر روی دیتابیس کار کنند و سیستم نیز خیلی بزرگ و پیچیده است. آیا این یک نفر میتواند این حجم کار را انجام دهد؟ اگر ایشون نبود چه اتفاقی می افتد؟

  6. #6

    نقل قول: راهکارهای بروز رسانی سیستم ها در محیط های عملیاتی - کار با Source Control

    نقل قول نوشته شده توسط BATIS مشاهده تاپیک
    با سلام و ضمن تشکر از شما جناب آقای صادقیان از اینکه بحث ارتقاء و کنترل بانکهای اطلاعاتی رو باز نمودید . راستش من از پست سودمند شما مواردی رو یاد گرفتم ولی فقط خواستم اشاره ای هم به تجربیات خودم بکنم و نظر شما و بقیه دوستان رو هم داشته باشم . شرکت ما سالهاست که برروی پروژههای گوناگون بانک اطلاعاتی اسکیوال کار میکنه و راستش اوایل یکی از مهمترین معضلات ما همین ارتقا بانک اطلاعاتی کاربرانمون بوده بدون اینکه اطلاعات موجود دچار آسیبی بشه . تا اینکه با ابزاری (البته غیر رایگان) بنام Sql Delta آشنا شدیم این ابزار براحتی این امکان رو به ما میده که بتونیم بانک اطلاعاتی مبدا (دیتابیس اصلی خودمون) رو با بانک اطلاعاتی مقصد مقایسه کنیم و بطور خودکار اسکرپتی را برامون میسازه که میتونه روی بانک اطلاعاتی مقصد هر نوع تغییری رو (حتی تغییر نوع فیلد) بده و براحتی آپدیت ساختار بانک اطلاعاتی انجام میشه . این ابزار حتی اطلاعات موجود در بانکهای اطلاعاتی رو میتونه با هم مقایسه کنه و اسکریپتی هم برای آپدیت اطلاعات دیتابیس مقصد برامون میسازه که بارها در اجرای پروژه های ما کارمون رو تسریع کرده . راستش الان که سالها از این نرم افزار استفاده کردبم کاملا بهش وابسته شدیم . به همین دلیل خواستم این تجربه با دوستانم در سایت برنامه نویس هم به اشتراک بگذارم تا شاید کمکی برای دوستان باشه .
    در مورد این ابزار و ابزارهای دیگه من زیاد باهاشون کار نکردم. ولی در همین Visual Studio شما کارهای زیادی از قبیل مقایسه داده ها و ساختار و تست نویسی رو دارید که انشالله درپستهای بعد بهش اشاره میکنم.

  7. #7

    نقل قول: راهکارهای بروز رسانی سیستم ها در محیط های عملیاتی - کار با Source Control

    باتوجه به اینکه ما تجربه پروژه های بزرگ رو داشتیم ولی در این مورد مشکل نداشتیم چون طراح و یا طراحان دیتابیس و تحلیلگر باهم هماهنگ میشدند و پس از اتمام طراحی و گاها موازی با طراحی دیتابیس کدنویسی هم انجام می شد

  8. #8
    کاربر جدید آواتار mostafab2m
    تاریخ عضویت
    فروردین 1389
    محل زندگی
    مشهد
    پست
    26

    نقل قول: راهکارهای بروز رسانی سیستم ها در محیط های عملیاتی - کار با Source Control

    شرکت هایی که از زیرو کلاینت استفاده میکنند چطور از این امکان بهره ببرن ؟؟؟؟

  9. #9
    کاربر جدید آواتار mostafab2m
    تاریخ عضویت
    فروردین 1389
    محل زندگی
    مشهد
    پست
    26

    نقل قول: راهکارهای بروز رسانی سیستم ها در محیط های عملیاتی - کار با Source Control

    ما تو شرکت خودمون یه نرم افزار نوشتیم که هر تغییری در دیتا بیس رو باید درخواست ثبت کنیم تا تیم دیتابیس اون رو پیاده کنند ولاگ هم در همون نرم افزار باقی میمونه

  10. #10

    نقل قول: راهکارهای بروز رسانی سیستم ها در محیط های عملیاتی - کار با Source Control

    نقل قول نوشته شده توسط dooste_2002 مشاهده تاپیک
    باتوجه به اینکه ما تجربه پروژه های بزرگ رو داشتیم ولی در این مورد مشکل نداشتیم چون طراح و یا طراحان دیتابیس و تحلیلگر باهم هماهنگ میشدند و پس از اتمام طراحی و گاها موازی با طراحی دیتابیس کدنویسی هم انجام می شد
    منظورتون از زیروکلاینت چیه؟

  11. #11

    نقل قول: راهکارهای بروز رسانی سیستم ها در محیط های عملیاتی - کار با Source Control

    نقل قول نوشته شده توسط dooste_2002 مشاهده تاپیک
    باتوجه به اینکه ما تجربه پروژه های بزرگ رو داشتیم ولی در این مورد مشکل نداشتیم چون طراح و یا طراحان دیتابیس و تحلیلگر باهم هماهنگ میشدند و پس از اتمام طراحی و گاها موازی با طراحی دیتابیس کدنویسی هم انجام می شد
    خوب این وسط اتفاقات زیادی ممکنه بیافته. به عنوان مثال دائما برنامه نویس باید با طراح دیتابیس داده هاشون بروز باشه و برای یک تغییر کوچک باید درخواست بده و این روند خیلی کار رو کند میکنه. همچنین برنامه نویس میتونه با توجه به نیازش برای خودش تست بنویسه که درچرخه شما امکان تست نویسی برای کدها امکان پذیر نیست. اگر روزی طراحان دیتابیس شما نباشند عملا کل تیم بیکار خواهد شد. چون تمام اتکای شما به یک سری افراد خاصه. این افراد باید در طراحی نهایی یا کاری که داره صورت میگیره نظر بدن ولی خود برنامه نویس میتونه جداولش رو طراحی کنه و خللی نیز ایجاد نمیکنه.

  12. #12
    کاربر دائمی آواتار delphi77
    تاریخ عضویت
    مرداد 1383
    محل زندگی
    ایران تهران
    پست
    743

    نقل قول: راهکارهای بروز رسانی سیستم ها در محیط های عملیاتی - کار با Source Control

    نکته هایی که آقای صادقیان فرمودند همه درسته و تنها با یک ورژن کنترل درست حسابی قابل حله هر کار دیگه ای که از روی نبود ورژن کنترل انجام بشه فقط میشه گفت رفع کتیه

    من تجربه کار با دیتابیس های به شدت در حال تغییر و همچنین بیگ دیتا را داشتم بنابراین تغییرات ساختار و داده بسیار بسیار حساسیت ایجاد میکنه و لازمه که یک ورژن کنترل وجود داشته باشه

    متاسفانه روی mysql ورژن کنترل خوبی ندیدم و مواردی که بودند فقط استراکچر را لاگ می کردند همچنین ابزارهایی مانند ماگریشن لاراول هم ناکارآمد بود مثلا تغییرات چندباره روی ساختار را در یک تغییر انجام نمی داد

    خلاصه اگر کسی ورژن کنترل روی مای اسکول سراغ داره بگه

  13. #13

    نقل قول: راهکارهای بروز رسانی سیستم ها در محیط های عملیاتی - کار با Source Control

    سلام و تشکر بابت بحث کاربردی که مطرح کردین بانک اطلاعاتی که من استفاده می کنم sql 2000 هست و به طور میانگین هفته ای یکبار آپدیت میشه میخاستم بدونم روشی که معرفی کردین (SSDT ) روی این نسخه sql جواب میده .

  14. #14

    نقل قول: راهکارهای بروز رسانی سیستم ها در محیط های عملیاتی - کار با Source Control

    نقل قول نوشته شده توسط ehsanarian مشاهده تاپیک
    سلام و تشکر بابت بحث کاربردی که مطرح کردین بانک اطلاعاتی که من استفاده می کنم sql 2000 هست و به طور میانگین هفته ای یکبار آپدیت میشه میخاستم بدونم روشی که معرفی کردین (SSDT ) روی این نسخه sql جواب میده .
    بله هیچ مشکلی نداره و به راحتی جواب نیازهای شمارو خواهد داد.

  15. #15

    نقل قول: راهکارهای بروز رسانی سیستم ها در محیط های عملیاتی - کار با Source Control

    سلام و عرض ادب خدمت اساتید عزیز در مورد راهکاری که آقای صادقیان فرمودند تا اونجایی متوجه شدم که ما بوسیله ابزار vs کل دیتابیسو رو به صورت کوئری ایجاد میکنیم build Server که سورس ها رو مقایسه میکنه چی هست ممنون میشم راهنماییم کنید؟
    آخرین ویرایش به وسیله ehsanarian : دوشنبه 07 دی 1394 در 13:24 عصر

  16. #16

    نقل قول: راهکارهای بروز رسانی سیستم ها در محیط های عملیاتی - کار با Source Control

    در واقع در چرخه فرآیند Automatic سازی روند Build نرم افزار ، شما نیاز به یک Build Server دارید. کار این Build Server این هست که به مخزن کدهای شما دسترسی داشته و آخرین Check In های شمارو از روی سورس کنترل برداشته Build کرده و بر روی سیستم های UAT ,QA اون اسکرپیتها رو اجرا می کنه و آخرین فایل اجرایی نرم افزار رو نیز در مسیر سیستم ها کپی میکنه. در این فرآیند دیگه شما نیازی ندارید هم دیتابیس رو به صورت دستی به سیستم مشتری منتقل کنید هم اینکه فایل اجرایی برنامه رو به صورت دستی به سیستم طرف منتقل کنید.

  17. #17
    کاربر دائمی
    تاریخ عضویت
    آذر 1388
    محل زندگی
    ته کوچه شک...
    پست
    234

    نقل قول: راهکارهای بروز رسانی سیستم ها در محیط های عملیاتی - کار با Source Control

    ابزار ApexSQL رو نصب کنید و از امکانات فوق العاده اش لذت ببرید. قابلیت اتصال به TFS رو هم داراست

  18. #18

    نقل قول: راهکارهای بروز رسانی سیستم ها در محیط های عملیاتی - کار با Source Control

    نقل قول نوشته شده توسط esmit61 مشاهده تاپیک
    ابزار ApexSQL رو نصب کنید و از امکانات فوق العاده اش لذت ببرید. قابلیت اتصال به TFS رو هم داراست
    این ابزار پولی هست و شما دارید به یک ابزاری وابسته میشین که غیر مایکروسافتی هست. همچنین استفاده از قابلیتهای Localdb و Refactoring و IDE قدرتمند Visual Studio رو از دست میدین.
    به جز این برای نوشتن Unit Test بر روی دیتابیس باز باید به ابزارهای دیگه وابسته بشین.
    مشابه این ابزار رو شرکت Redgate هم داره که قابلیتهای خیلی بیشتری داره.
    مهم این هست که این چرخه رو بتونیم درون سیستم ها و تولید نرم افزارهامون راه اندازی کنیم.

تاپیک های مشابه

  1. نحوه ی بروز رسانی مدل ها و map ها در EF Code First
    نوشته شده توسط debugger در بخش دسترسی به داده ها (ADO.Net و LINQ و ...)
    پاسخ: 0
    آخرین پست: شنبه 06 دی 1393, 11:36 صبح
  2. گفتگو: بحث و گفتگو در مورد سیستم ها و زبان های متن باز
    نوشته شده توسط capitan_nemesis در بخش دیگر زبان های اسکریپتی
    پاسخ: 13
    آخرین پست: سه شنبه 31 تیر 1393, 09:45 صبح
  3. مبتدی: بروز رسانی داده ها در MySQL
    نوشته شده توسط ostad_ccna در بخش PHP
    پاسخ: 3
    آخرین پست: سه شنبه 10 مرداد 1391, 12:55 عصر
  4. سوال: راهکار اسکوئل برای تغییر کورد ها در محیط های چند کاربره
    نوشته شده توسط samprp در بخش SQL Server
    پاسخ: 5
    آخرین پست: چهارشنبه 20 شهریور 1387, 18:25 عصر
  5. در دست گیری محدویت پنجره ها در فرم های ReSizeable سفارشی
    نوشته شده توسط Pichidehtarin در بخش برنامه نویسی در Delphi
    پاسخ: 9
    آخرین پست: سه شنبه 24 شهریور 1383, 14:27 عصر

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •