PDA

View Full Version : حرفه ای: مدیریت آپدیت برنامه و مچ کردن با دیتابیس



cmsdqq2
جمعه 09 شهریور 1397, 00:07 صبح
دوستان سلام وقتتون بخیر

به نظر شما برای اینکه وقتی آپدیتی برای برنامه میاد، یکسری از ورژن ها فقط بتونند اون آپدیت رو نصب کنند، چه باید کرد؟

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

اینجا یک مشکلی پیش میاد. اگر یک نسخه از آپدیت هایی که پیش نیاز هستند از سرور پاک بشه، دیگه کار نمیکنه.

یک روش دیگه هم این هست که توی فایل xml ورژن معتبر رو بذاریم. مثلاً اگر ورژن برنامه بالاتر از value تگ versionupdate در فایل xml بود یعنی اینکه این آپدیت با این نسخه سازگاره و میتونه روش نصب بشه؛ اما خب این روش خیلی مشکل داره.

در واقع دوستان به دنبال راه های مدیریت آپدیت برنامه هستم. :لبخندساده:

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

دوم هم اینکه اگر آپدیتی داشته باشیم که با دیتابیس فعلی نخونه، برای مدیریت و کنترل این موضوع چه ایده ای دارید؟

ممنونم و تشکر. امید که این موضوع به نتایج خوبی برسه. :لبخندساده:

mp2009
جمعه 09 شهریور 1397, 10:31 صبح
دقیقا سوال منم هست. دوستان اگه کسی اطلاع داره کمک کنه ممنون میشم

hosseinbarnamenevis
جمعه 09 شهریور 1397, 11:44 صبح
سلام
من برای برنامه های خودم مدیریت بروزرسانی درست کرم که شامل چند بخش میشه
1- نرم افزار دریافت بروزرسانی( دریافت فایل های مورد نیاز )
2- نرم افزار بروزرسانی مورد 1 ( این نرم افزار ابتدا نرم افزار اول رو دانلود میکنه و بعد اجرا میکنه )
3- بروزرسانی دیتابیس ( این مورد هم که آخرین تغییرات جداول رو اعمال میکنه )
برای اینکه مدیریت کنید که چه ورژن هایی مجاز به نصب هستند : روش کار من اینکه هر نرم افزار یه کدپشتیبانی داره، نرم افزار میاد ابتدا کدپشتیبانی از جدولی میخونه که مجاز به نصب بروزرسانی هست یا نه، اگه بود پنجره ی بروزرسانی جدید رو نمایش میده به همراه آخرین تغییرات انجام شده
زمانی هم که کاربر بروزرسانی رو نصب میکنه اطلاعاتش داخل سرور ذخیره میشه
خلاصه روند کار و ذخیره اطلاعات دست خودتونه

cmsdqq2
جمعه 09 شهریور 1397, 23:00 عصر
سلام
من برای برنامه های خودم مدیریت بروزرسانی درست کرم که شامل چند بخش میشه
1- نرم افزار دریافت بروزرسانی( دریافت فایل های مورد نیاز )
2- نرم افزار بروزرسانی مورد 1 ( این نرم افزار ابتدا نرم افزار اول رو دانلود میکنه و بعد اجرا میکنه )
3- بروزرسانی دیتابیس ( این مورد هم که آخرین تغییرات جداول رو اعمال میکنه )
برای اینکه مدیریت کنید که چه ورژن هایی مجاز به نصب هستند : روش کار من اینکه هر نرم افزار یه کدپشتیبانی داره، نرم افزار میاد ابتدا کدپشتیبانی از جدولی میخونه که مجاز به نصب بروزرسانی هست یا نه، اگه بود پنجره ی بروزرسانی جدید رو نمایش میده به همراه آخرین تغییرات انجام شده
زمانی هم که کاربر بروزرسانی رو نصب میکنه اطلاعاتش داخل سرور ذخیره میشه
خلاصه روند کار و ذخیره اطلاعات دست خودتونه


ممنونم

شما این کار رو چطور انجام میدید؟

بروزرسانی دیتابیس ( این مورد هم که آخرین تغییرات جداول رو اعمال میکنه )

cmsdqq2
دوشنبه 12 شهریور 1397, 18:27 عصر
ممنونم

شما این کار رو چطور انجام میدید؟

بروزرسانی دیتابیس ( این مورد هم که آخرین تغییرات جداول رو اعمال میکنه )






گفته میشه این کار رو میشه با کامند sql انجام داد. ممکن هست کمی راهنمایی کنید؟ البته در حدی که زیاد وقتتون رو نگیره. ممنونم :لبخندساده:

hosseinbarnamenevis
یک شنبه 18 شهریور 1397, 22:04 عصر
کافیه یه سرچ بزنین
شما با sql کتمند دستورات درج و حذف رو اجرا میکنین
میتونین دستوراتی مثل alter هم استفاده کنین که نقش اضافه کردن فیلد به جدول رو داره
یا میتونین یه جدول جدید بسازین
تمام دستورات sql هست و تو اینترنت به راجتی پیدا میشن

mp2009
سه شنبه 20 شهریور 1397, 17:01 عصر
پیشنهاد من اینه که از smo استفاده کنی

اینم نمونه کد



using Microsoft.SqlServer.Management.Smo;
using Microsoft.SqlServer.Management.Common;


private static string GetScript()
{
string path = AppDomain.CurrentDomain.BaseDirectory +
@"Scripts\script.sql";
var file = new FileInfo(path);


string script = file.OpenText().ReadToEnd();
return script;
}


private void ExecuteScript()
{
using (SqlConnection conn = new SqlConnection(ConnectionString))
{
Server server = new Server(new ServerConnection(conn));
server.ConnectionContext.ExecuteNonQuery(GetScript ());


}
}

cmsdqq2
چهارشنبه 21 شهریور 1397, 01:14 صبح
پیشنهاد من اینه که از smo استفاده کنی

اینم نمونه کد



using Microsoft.SqlServer.Management.Smo;
using Microsoft.SqlServer.Management.Common;


private static string GetScript()
{
string path = AppDomain.CurrentDomain.BaseDirectory +
@"Scripts\script.sql";
var file = new FileInfo(path);


string script = file.OpenText().ReadToEnd();
return script;
}


private void ExecuteScript()
{
using (SqlConnection conn = new SqlConnection(ConnectionString))
{
Server server = new Server(new ServerConnection(conn));
server.ConnectionContext.ExecuteNonQuery(GetScript ());


}
}



ممنونم

لطف کردین.

من از SQL SERVER Express 2012 LOCALDB خود ویژوال استدیو استفاده میکنم. با این نسخه به نظرتون کار میکنه؟

mp2009
پنج شنبه 22 شهریور 1397, 06:53 صبح
بله فرقی نمیکنه
این دستوراتی که براتون فرستادم برای اجرای فایل اسکریپت به صورت صحیح و اصولی همراه با چک های sql server هست.