PDA

View Full Version : آپدیت کردن فیلدهای دیتابیس بعد از تغییرات



jafarpalideh
شنبه 11 شهریور 1396, 14:27 عصر
با سلام .
من یه برنامه نوشتم در مورد PM که الان داره تویه شرکت استفاده میشه و کاربرها دیتا وارد میکنن .
یه خواسته های جدیدی پیش میاد و من مجبورم هی یه فیلدهایی رو به برنامه اضافه کنم .
من اول رویه سیستم خودم برنامه رو مینویسم و تست میکنم و ارورهاش رو میگیرم ولی وقتی میخوام بیارمش رویه سرور شاید یادم نمونه که چه فیلدهای رو اضافه کردم یا چه ارتباطی بین فیلدها گذاشتم .
این مورد راهکاری داره؟

fakhravari
شنبه 11 شهریور 1396, 17:55 عصر
برنامه های مختلفی هست برای مقایسه 2 دیتابیس data -
SCHEMA
Redgate - یا ابزار های داخل وژال استادیو

jafarpalideh
یک شنبه 12 شهریور 1396, 10:01 صبح
همین ؟ واسه آپدیتش هم باس بشینم و کد بزنم ؟
یا خودش کد جنریت میکنه ؟

jafarpalideh
دوشنبه 13 شهریور 1396, 14:20 عصر
دوستان نظری ندارن ؟
یا لااقل به این مورد بر نخوردن ؟

jafarpalideh
چهارشنبه 15 شهریور 1396, 08:08 صبح
آیا اسکریپتی وجود داره که دوتا دیتابیس رو با هم مقایسه کنه و بعد یه نتیجه بده که تفاوت ها اینجاست و یه اسکریپت واسه آپدیت فیلدهای جدید بده ؟
اگرم نرم افزاری وجود داره میشه لطف کنید و اسم دقیقش رو بگید ؟

ASKaffash
دوشنبه 20 شهریور 1396, 11:38 صبح
سلام
به این گونه روش ها پیاده سازی Versioning میگویند مراحل کار به شکل ذیل است :
- بانک اطلاعاتی یک شماره نسخه دارد (احتمالا" در یک جدول تنظیمات برنامه و یک عدد است که از یک شروع می شود)
- برنامه کاربردی شما یک شماره نسخه دارد که در یک متغیر ثابت و استاتیک شما تنظیم می کنید
- در ابتدای برنامه همیشه این دو عدد مقایسه می شوند :
- اگر مساوی باشد برنامه اجرا می شود
- اگر ورژن بانک از ورژن برنامه برنامه بیشتر باشد اجرای برنامه با یک پیام مناسب قطع می شود
- اگر ورژن برنامه از ورژن بانک بیشتر است بصورت اتوماتیک برنامه به سمت اجرای Script می رود
اما Script :
برای هر نسخه جدید برنامه یک فایل تکست داشته باشید که بهتر است درون EXE شما Embeded شده باشد در #C خیلی آسان است
برنامه شما از نسخه بانک تا نسخه برنامه باید به ترتیب Script ها را باید اجرا کند
در صورت تکمیل کل فراِیند عدد بانک باید با عدد ورژن برنامه یکسان شود و برنامه اجرا شود
داخل فایل متنی هر Script موارد ذیل را رعایت کنید :
در هنگام تغییر معماری بانک از ویزارد بانک استفاده نکنید و کد TSQL و یا PLSQL و ... بنویسد
هر دستور را با دستور قبلی با یک جدا ساز جدا کنید مثلا" GO در روش TSQL مناسب تر است
در هنگام اجرای محتوای فایل متنی Script دستور را بین دو GO استخراج و توسط SQLCommand اجرا کنید
مثال :
GO
Create Table T (A bigint)
GO
Alter Table T Add B nVarChar(100)
GO
....

jafarpalideh
دوشنبه 24 مهر 1396, 11:27 صبح
خود ویژوال استودیو یه راه حل فوق العاده داره . میزارم که دوستان هم استفاده کنن.

http://www.dotnettips.info/post/202

رامین مرادی
دوشنبه 24 مهر 1396, 13:24 عصر
خود ویژوال استودیو یه راه حل فوق العاده داره . میزارم که دوستان هم استفاده کنن.

http://www.dotnettips.info/post/202
من این گزینه رو نه تو 2013 دیدم نه تو 2015 :متفکر:

jafarpalideh
دوشنبه 24 مهر 1396, 15:01 عصر
من این گزینه رو نه تو 2013 دیدم نه تو 2015 :متفکر:


به اینجا یه سر بزنید .

https://social.msdn.microsoft.com/Forums/en-US/08dca6f6-35e7-443c-b7c7-2efb9308e5dd/schema-compare-in-visual-studio-2015?forum=visualstudiogeneral

khorsandreza
جمعه 28 مهر 1396, 00:21 صبح
من ازاین SQLDelta.exe نرم افزار برای مقایسه ساختار دو تا دیتا بیس و تعییرات محتوائی جداول استفاده میکنم نرم افزار خوبی است