PDA

View Full Version : حرفه ای: آپدیت دیتابیس برنامه نصب شده در سی شارپ



cmsdqq2
شنبه 17 شهریور 1397, 23:46 عصر
دوستان سلام

مدتی هست به دنبال شیوه ای برای آپدیت دیتابیس برنامه ی نصب شده روی سیستم کاربر هستم که نیازی به جایگزینی دیتابیس و طبیعتاً حذف اطلاعات نباشه.

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

برای آپدیت چه باید کرد؟

ممنونم :لبخندساده:

barnamenevisjavan
یک شنبه 18 شهریور 1397, 00:03 صبح
دوستان سلام

مدتی هست به دنبال شیوه ای برای آپدیت دیتابیس برنامه ی نصب شده روی سیستم کاربر هستم که نیازی به جایگزینی دیتابیس و طبیعتاً حذف اطلاعات نباشه.

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

برای آپدیت چه باید کرد؟

ممنونم :لبخندساده:
2 راه بیشتر نداری،
بهترین راه، استفاده از نسخه اصلی sql و استفاده از روش ارتباطی EntityFramwork و ویژگی Migration که تو این مدل تغییرات دیتابیس بدون از دست رفتن اطلاعات بصورت خودکار بروزرسانی میشه
راه دوم که یکم پیچیده میشه، خودتون یه ویژگی ایجاد کنید در صورت وجود اپدیت برای دیتابیس اسکریپت اون رو تولید کنید و برنامه اون اسکریپت رو اجرا کنه اما قبلش اطلاعات موجود در جداول رو خودتون با الگوریتم مشخصی استخراج کنید، و دیتابیس رو پاک کنید، بعد از اجرای اسکریپت جدید طبق الگوریتم خودتون اطلاعات استخراج شده رو به جداول مربوطه وارد کنید. میزان خطا و دردسر این روش بیشتره

cmsdqq2
یک شنبه 18 شهریور 1397, 00:20 صبح
2 راه بیشتر نداری،
بهترین راه، استفاده از نسخه اصلی sql و استفاده از روش ارتباطی EntityFramwork و ویژگی Migration که تو این مدل تغییرات دیتابیس بدون از دست رفتن اطلاعات بصورت خودکار بروزرسانی میشه
راه دوم که یکم پیچیده میشه، خودتون یه ویژگی ایجاد کنید در صورت وجود اپدیت برای دیتابیس اسکریپت اون رو تولید کنید و برنامه اون اسکریپت رو اجرا کنه اما قبلش اطلاعات موجود در جداول رو خودتون با الگوریتم مشخصی استخراج کنید، و دیتابیس رو پاک کنید، بعد از اجرای اسکریپت جدید طبق الگوریتم خودتون اطلاعات استخراج شده رو به جداول مربوطه وارد کنید. میزان خطا و دردسر این روش بیشتره


ممنونم

از SQL SERVER 2012 EXPRESS LOCALDB استفاده میکنم با روش ADO پس با این شرایط روش اول امکان نداره؟

ممکن هست در مورد روش دوم کمی بیشتر توضیح بدین؟ ممنونم لطف میکنین

mr.sirwan
یک شنبه 18 شهریور 1397, 00:35 صبح
ممنونم

از SQL SERVER 2012 EXPRESS LOCALDB استفاده میکنم با روش ADO پس با این شرایط روش اول امکان نداره؟

ممکن هست در مورد روش دوم کمی بیشتر توضیح بدین؟ ممنونم لطف میکنین

استفاده از EF محدود به sql نسخه کامل نیس، با هر نسخه از Sql میتونین از EF استفاده کنین

cmsdqq2
یک شنبه 18 شهریور 1397, 00:39 صبح
استفاده از EF محدود به sql نسخه کامل نیس، با هر نسخه از Sql میتونین از EF استفاده کنین

کل پروژه با ADO پیاده سازی شده. تا به حال با EF هم به درستی کار نکردم. پروژه نسبتاً بزرگی هست. زمان پابلیش هم کمتر از یک هفته است. به نظرتون از روش دوم استفاده کنم بهتر نیست؟

مورد اصلی من در این هست که در روش اول فقط کافیه به صورت EF به دیتابیس وصل شد یا اینکه باید کل شیوه های اتصال به بانک، ذخیره، حذف، آپدیت و ... اطلاعات و مدیریت پروژه رو به EF تغییر داد؟

اگر صرفاً اتصال به صورت EF باشه که کافیه از Data Access شیوه ی اتصال رو تغییر داد و قطعاً روش اول بهتر هست؛ اما فکر نکنم صرفاً اتصال به EF نیاز داشته باشه.

Helpco
یک شنبه 18 شهریور 1397, 08:25 صبح
2 راه بیشتر نداری،
بهترین راه، استفاده از نسخه اصلی sql و استفاده از روش ارتباطی EntityFramwork و ویژگی Migration که تو این مدل تغییرات دیتابیس بدون از دست رفتن اطلاعات بصورت خودکار بروزرسانی میشه

امکان داره در مورد این روش کمی بیشتر بگید چطوری باید انجام داد

barnamenevisjavan
یک شنبه 18 شهریور 1397, 09:45 صبح
ممنونم

از SQL SERVER 2012 EXPRESS LOCALDB استفاده میکنم با روش ADO پس با این شرایط روش اول امکان نداره؟

ممکن هست در مورد روش دوم کمی بیشتر توضیح بدین؟ ممنونم لطف میکنین


کل پروژه با ADO پیاده سازی شده. تا به حال با EF هم به درستی کار نکردم. پروژه نسبتاً بزرگی هست. زمان پابلیش هم کمتر از یک هفته است. به نظرتون از روش دوم استفاده کنم بهتر نیست؟

مورد اصلی من در این هست که در روش اول فقط کافیه به صورت EF به دیتابیس وصل شد یا اینکه باید کل شیوه های اتصال به بانک، ذخیره، حذف، آپدیت و ... اطلاعات و مدیریت پروژه رو به EF تغییر داد؟

اگر صرفاً اتصال به صورت EF باشه که کافیه از Data Access شیوه ی اتصال رو تغییر داد و قطعاً روش اول بهتر هست؛ اما فکر نکنم صرفاً اتصال به EF نیاز داشته باشه.
میتونید از روش انتیتی فریمورک استفاده کنید ولی فک نکنم بتونید از ویژگی Migration استفاده کنید چون Localdb یک سری محدودیت ها داره، باز خودتون بیشتر جستجو کنید.
بله باید کل روش عملیات CRUD رو از اول پیاده سازی کنید گرچه قابلیت استفاده از ado رو هم در کنارش دارین، روش دوم که گفتم یکم کارو سخت میکنه خودم تا حالا امتحان نکردم، ولی میتونید به این صورت عمل کنید:
لیست جداول رو بدست بیارید، بعد اسم جدول رو داخل فایل متنی ذخیره کنید همچنین اطلاعاتی که داخلش هست رو هم استخراج کنید و داخل فایل متنی ذخیره کنید بعد ک اطلاعات رو خارج کردین، دیتابیس رو پاک کنیدو از طریق کدهای sql دیتابیس جدید ، دیتابیس رو ایجاد کنید و اطلاعات استخراج شده رو باتوجه به نام جدول وارد کنید.

Mahmoud Zaad
یک شنبه 18 شهریور 1397, 10:16 صبح
دوستان سلام

مدتی هست به دنبال شیوه ای برای آپدیت دیتابیس برنامه ی نصب شده روی سیستم کاربر هستم که نیازی به جایگزینی دیتابیس و طبیعتاً حذف اطلاعات نباشه.

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

برای آپدیت چه باید کرد؟

ممنونم :لبخندساده:

با سلام
مثلاً شما یه دیتابیس دارید با چند جدول که هر کدوم چند فیلد دارند، حالا به فرض یک فیلد به جدول 1 اضافه شده و مثلاً نوع داده ای یک فیلد در جدول 2 از int به float تغییر کرده، آیا سوال شما این هست که چطور این تغییرات اعمال بشه، بدون حذف اطلاعات و دیتابیس؟

cmsdqq2
یک شنبه 18 شهریور 1397, 12:34 عصر
با سلام
مثلاً شما یه دیتابیس دارید با چند جدول که هر کدوم چند فیلد دارند، حالا به فرض یک فیلد به جدول 1 اضافه شده و مثلاً نوع داده ای یک فیلد در جدول 2 از int به float تغییر کرده، آیا سوال شما این هست که چطور این تغییرات اعمال بشه، بدون حذف اطلاعات و دیتابیس؟

دقیقاً

تغییرات اینجوری

کاملاً درسته

به عنوان مثال چند جدول جدید اضافه بشه، چند فیلد به جدول های فعلی موجود اضافه بشن، نوع داده فیلدها تغییر پیدا کنه و این تغییرات

Mahmoud Zaad
یک شنبه 18 شهریور 1397, 12:54 عصر
والا جوابا رو دیدم ترسیدم!
ببینید فقط کافیه تغییرات رو به شکل کوئری بنویسید و مثل بقیه کوئری ها (مثلاً سلکت، اینسرت و ...) اجرا کنید.
مثلاً برای اضافه کردن یه ستون جدید کافیه دستور زیر رو اجرا کنید:
ALTER TABLE table_name ADD column_name datatype;

اینجا (https://www.w3schools.com/sql/sql_alter.asp) چند نمونه دیگه هست. اگه ستون سمت چپ رو نگاه کنید بقیه دستورات هم اونجا هست. کلاً میشه دیتابیس رو با کوئری از اول ساخت.

cmsdqq2
یک شنبه 18 شهریور 1397, 13:15 عصر
والا جوابا رو دیدم ترسیدم!
ببینید فقط کافیه تغییرات رو به شکل کوئری بنویسید و مثل بقیه کوئری ها (مثلاً سلکت، اینسرت و ...) اجرا کنید.
مثلاً برای اضافه کردن یه ستون جدید کافیه دستور زیر رو اجرا کنید:
ALTER TABLE table_name ADD column_name datatype;

اینجا (https://www.w3schools.com/sql/sql_alter.asp) چند نمونه دیگه هست. اگه ستون سمت چپ رو نگاه کنید بقیه دستورات هم اونجا هست. کلاً میشه دیتابیس رو با کوئری از اول ساخت.


خیلی ممنون لطف کردین :لبخندساده:

پس در واقع نتیجه این شد که کوئری های موردنظر نوشته بشن بعد هم اجرا بشن. درسته؟

اگر درسته، یک سوال. چطور این تغییرات جدید رو که با کوئری ها اجرا میکنیم، روی دیتابیس فعلی پیاده سازی کنیم؟

یعنی دیگه نیازی به copy & past و حذف اطلاعات و جایگزینیشون نباشه.

Mahmoud Zaad
یک شنبه 18 شهریور 1397, 13:33 عصر
درسته، شما وقتی کوئری رو اجرا می کنید کانکشن استرینگ مشخص میکنه که تغییرات روی کدوم دیتابیس اعمال بشه. پس شما با همون کانکشن استرینگی که سلکت می زنید با همون هم کوئری مربوط به تغییرات دیتابیس رو اجرا کنید تا تغییرات روی دیتابیس فعلی اجرا بشه.
شما روی یک دیتابیس فرضی مثلا همون دستور پست قبل رو اجرا کنید تا نتیجه رو ببینید.

cmsdqq2
یک شنبه 18 شهریور 1397, 14:02 عصر
درسته، شما وقتی کوئری رو اجرا می کنید کانکشن استرینگ مشخص میکنه که تغییرات روی کدوم دیتابیس اعمال بشه. پس شما با همون کانکشن استرینگی که سلکت می زنید با همون هم کوئری مربوط به تغییرات دیتابیس رو اجرا کنید تا تغییرات روی دیتابیس فعلی اجرا بشه.
شما روی یک دیتابیس فرضی مثلا همون دستور پست قبل رو اجرا کنید تا نتیجه رو ببینید.

ببخشید یه موضوعی رو متوجه نمیشم.

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

cmsdqq2
یک شنبه 18 شهریور 1397, 14:14 عصر
در واقع یک دیتابیس به صورت local روی سیستم مشتری نصب و از اطلاعات مشتری توسط خود مشتری پرشده. حالا قرار هست فرضاً یک امکاناتی به برنامه اضافه بشه و به همین دلیل اضافه شدن چند جدول به دیتابیس نیاز هست.

حالا کوئری ها رو اجرا میکنیم، دیتابیس جدید رو میسازیم. این دیتابیسی که دست منه دیتابیس جدیده اما اطلاعات مشتری توش نیست. سوال من این هست که چطور باید این دیتابیس جدید رو با دیتابیس مشتری جایگزین کرد؟ البته با حفظ اطلاعات مشتری

Mahmoud Zaad
یک شنبه 18 شهریور 1397, 14:15 عصر
چرا کپی بگیریم؟ کلاً یه دیتابیس داریم که روی سیستم مشتری نصب هست، حالا روی همین دیتابیس کوئری ها رو اجرا می کنیم و تغییرات اعمال میشه. دیگه نیازی به کپی و جایگزینی نیست.

*******آپدیت
شما یه برنامه جدید می نویسید که کارش آپدیت کردن هست. در این برنامه شما کوئری های مربوط به تغییرات دیتابیس رو اجرا می کنید. یعنی هر بار که تغییراتی وجود داره شما یه برنامه آپدیتر به مشتری می دید و می گید اینو اجرا کن. که با اجرای این برنامه تغییرات روی سیستم مشتری اعمال میشه.
حالا اینکه برنامه رو روی سایت قرار بدید یا خودتون براش ببرید یا ایمیل کنید بحثش جداست.

این در ساده ترین حالت هست. حالا بحث مدیریت کوئری ها هم هست که مثلاً شما یه بار قبلاً یه فیلدی رو اضافه کردید دیگه دوباره کوئری اضافه کردن اون فیلد رو اجرا نکنید و ...

cmsdqq2
یک شنبه 18 شهریور 1397, 16:29 عصر
چرا کپی بگیریم؟ کلاً یه دیتابیس داریم که روی سیستم مشتری نصب هست، حالا روی همین دیتابیس کوئری ها رو اجرا می کنیم و تغییرات اعمال میشه. دیگه نیازی به کپی و جایگزینی نیست.

*******آپدیت
شما یه برنامه جدید می نویسید که کارش آپدیت کردن هست. در این برنامه شما کوئری های مربوط به تغییرات دیتابیس رو اجرا می کنید. یعنی هر بار که تغییراتی وجود داره شما یه برنامه آپدیتر به مشتری می دید و می گید اینو اجرا کن. که با اجرای این برنامه تغییرات روی سیستم مشتری اعمال میشه.
حالا اینکه برنامه رو روی سایت قرار بدید یا خودتون براش ببرید یا ایمیل کنید بحثش جداست.

این در ساده ترین حالت هست. حالا بحث مدیریت کوئری ها هم هست که مثلاً شما یه بار قبلاً یه فیلدی رو اضافه کردید دیگه دوباره کوئری اضافه کردن اون فیلد رو اجرا نکنید و ...







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

پس کوئری ها رو آماده میکنیم، میذاریم روی سرور، کاربر دانلود کنه و اجرا کنه.

فقط یک سوال

کوئری ها رو با چه استانداردی یا بهتره بگم چطور و کجا بنویسیم و روی سیستم کاربر اجرا کنیم؟

----------

باز هم ممنونم لطف کردین که اینقدر وقت گذاشتید و با دقت خوندین و به شدددت راهنمایی کردین :لبخندساده:

Mahmoud Zaad
یک شنبه 18 شهریور 1397, 16:56 عصر
خواهش می کنم
میشه توی یه فایل تکست هم نوشت. فقط باید برای هر کوئری یه ورژن تعریف کنید. از طرف دیگه باید بعد از آپدیت دیتابیس ورژن دیتابیس رو هم توی خود دیتابیس در یه فیلدی ذخیره کنید. حالا هر بار که آپدیتر اجرا میشه ورژن دیتابیس رو بررسی می کنید و کوئری هایی که ورژن اونها بیشتر از ورژن دیتابیس بود اجرا میکنید و اگه همه کوئری ها موفق اجرا شدن، ورژن دیتابیس رو هم آپدیت می کنید. مثل آنتی ویروس ها که یه ورژن دیتابیس دارن و یک ورژن خود نرم افزار.
فرض کنید یه فایل می سازیم مثل زیر:
1: alter ...
1: drop ...
2: update...
3: alter...

بعد بررسی میکنید می بینید ورژن دیتابیس کاربر 2 هست یعنی موارد 1 و 2 قبلاً اجرا شده پس باید خط مربوط به ورژن 3 اجرا بشه. بعد از اجرای این خط، ورژن دیتابیس رو هم به 3 آپدیت می کنید.

cmsdqq2
یک شنبه 18 شهریور 1397, 17:41 عصر
خواهش می کنم
میشه توی یه فایل تکست هم نوشت. فقط باید برای هر کوئری یه ورژن تعریف کنید. از طرف دیگه باید بعد از آپدیت دیتابیس ورژن دیتابیس رو هم توی خود دیتابیس در یه فیلدی ذخیره کنید. حالا هر بار که آپدیتر اجرا میشه ورژن دیتابیس رو بررسی می کنید و کوئری هایی که ورژن اونها بیشتر از ورژن دیتابیس بود اجرا میکنید و اگه همه کوئری ها موفق اجرا شدن، ورژن دیتابیس رو هم آپدیت می کنید. مثل آنتی ویروس ها که یه ورژن دیتابیس دارن و یک ورژن خود نرم افزار.
فرض کنید یه فایل می سازیم مثل زیر:
1: alter ...
1: drop ...
2: update...
3: alter...

بعد بررسی میکنید می بینید ورژن دیتابیس کاربر 2 هست یعنی موارد 1 و 2 قبلاً اجرا شده پس باید خط مربوط به ورژن 3 اجرا بشه. بعد از اجرای این خط، ورژن دیتابیس رو هم به 3 آپدیت می کنید.


خیلی هم عالی

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

چیزی که من فهمیدم این هست:

1- ورژن دیتابیس توی یک فیلد ذخیره بشه.
2- کوئری ها توی یک فایل مثلاً xml با ورژن نوشته بشه.
3- ورژن های سازگار از کوئری ها اعمال و اجرا بشه.
4- اگر موفقیت آمیز بود، ورژن دیتابیس رو هم آپدیت کنه.


درسته؟

اگر درست هست، یک مزاحمت بیشتر :لبخندساده:

این کوئری های نوشته شده با sql رو چطور در سیستم مقصد اجرا و execute کنیم؟

Mahmoud Zaad
یک شنبه 18 شهریور 1397, 20:20 عصر
درسته
اینو که همون اول گفتم. شما در همون برنامه آپدیتر، فایل رو می خونید و در صورت برقرار بودن شرایط کوئری ها رو اجرا میکنید. اگه منظورتون چیز دیگه ای دقیقتر بفرمایید.

cmsdqq2
یک شنبه 18 شهریور 1397, 21:12 عصر
درسته
اینو که همون اول گفتم. شما در همون برنامه آپدیتر، فایل رو می خونید و در صورت برقرار بودن شرایط کوئری ها رو اجرا میکنید. اگه منظورتون چیز دیگه ای دقیقتر بفرمایید.

ممنونم خیلی لطف کردین. الگوریتم تکمیل شد :لبخندساده:

و به عنوان یک سوال عمومی، ساده و صرفاً برای گرفتن ایده.

به نظر شما برای آپدیتر از چه چیزی استفاده کنم؟ ایده یا نمونه ی جذابی وجود داره؟

کتابخونه ها و پکیج های آماده چطور؟

cmsdqq2
یک شنبه 18 شهریور 1397, 21:13 عصر
البته الان با مشکل TDE در SQL Server Express 2012 LocalDB مواجه شدم. چون TDE ساپورت نمیکنه و گویا هیچ راهی برای حفاظت فیزیکی بانک وجود نداره. :لبخندساده:

Mahmoud Zaad
یک شنبه 18 شهریور 1397, 21:41 عصر
ممنونم خیلی لطف کردین. الگوریتم تکمیل شد :لبخندساده:

و به عنوان یک سوال عمومی، ساده و صرفاً برای گرفتن ایده.

به نظر شما برای آپدیتر از چه چیزی استفاده کنم؟ ایده یا نمونه ی جذابی وجود داره؟

کتابخونه ها و پکیج های آماده چطور؟




یادمه یکی از دوستان یه نمونه برنامه گذاشته بود شاید توی تاپیکهای اعلان، تاپیک نمونه برنامه ها باشه. ولی در کل کار سختی نیست خودتون هم می تونید بنویسید.
اما برای مشکلتون جدیدتون، حقیقتاً دنبالش نبودم ولی خب والله خیر الحافظین! :لبخندساده: پناه بر خدا!

ShayanFiroozi
دوشنبه 19 شهریور 1397, 12:42 عصر
این شاید کمک کنه (http://barnamenevis.org/showthread.php?384035-%D8%B3%D8%A7%D8%AE%D8%AA-%D8%AF%DB%8C%D8%AA%D8%A7%D8%A8%DB%8C%D8%B3-%D8%A8%D8%B1-%D8%B1%D9%88%DB%8C-%D8%B3%DB%8C%D8%B3%D8%AA%D9%85-%D9%85%D8%B4%D8%AA%D8%B1%DB%8C-%D8%B2%D9%85%D8%A7%D9%86-%D8%A7%D8%AC%D8%B1%D8%A7%DB%8C-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87)

rahmatipoor
چهارشنبه 28 شهریور 1397, 12:29 عصر
میتونید از ابزارهای Red Gate هم استفاده کنید

رامین مرادی
شنبه 31 شهریور 1397, 08:49 صبح
میتونید از ابزارهای RedGate هم استفاده کنید
در مورد این توضیح میدید یا لینکی چیزی؟

rahmatipoor
یک شنبه 01 مهر 1397, 10:05 صبح
Red Gate SQL Toolbelt

مجموعه ابزارهای زیادی برای کارهای مختلف روی دیتابیس اس کیو ال داره که یکی از ابزارهاش sql packager هست.

خود این sql packager هم چند تا امکان مختلف داره از جمله اینکه پس از اینکه شما تغییرات لازم رو روی دیتابیس انجام دادید و خواستید این تغییرات رو روی سیستم کاربرهایی که از نسخه قبلی دیتابیس استفاده میکنند اعمال کنید بدون اینکه برای اطلاعاتشون مشکلی پیش بیاد، sql packager نسخه قدیمی و جدید دیتابیس تون رو با همدیگه مقایسه می کنه و به صورت کاملا دقیق اسکریپت تغییرات نسخه جدید نسبت به نسخه قبلی رو براتون تهیه میکنه. که اگه این اسکریت رو روی نسخه قدیمی دیتابیس اجرا کنید تغییرات لازم رو روی اون اعمال میکنه و اون رو به نسخه جدید ارتقا میده بدون اینکه اطلاعات وارد شده توی دیتابیس از دست بره. حتی میتونید مشخص کنید که اطلاعات جداول خاصی از نسخه جدید دیتابیس(مثلا فرض کنید لیست اطلاعات پایه توی دیتابیس تعریف شده و توی نسخه جدید مواردی به اون اضافه شده) پس از تغییرات نسخه قدیمی روی اون کپی بشه و دقیقا نسخه جدید و قدیم حتی از نظر اطلاعات وارد شده هم یکسان باشند

پس از اینکه sql packager اسکریپت تغییرات رو براتون تهیه کرد میتونید اون رو در قالب یک فایل exe و یا یک پروژه سی شارپی خروجی بگیرید یا اینکه خود اسکریپت رو کپی کنید و دستی روی دیتابیس مقصد اجرا کنید.
نرم افزار فوق العاده ای هست. من چند ساله که استفاده میکنم و بدون مشکل دیتابیس مشتریهای قبلی رو به روزرسانی میکنم. دو تا عکس از محیط sql packager براتون میذارم:

148930

148931

cmsdqq2
دوشنبه 02 مهر 1397, 03:06 صبح
خیلی ممنون

بسیار لطف کردین

تشکر از همه ی دوستان :لبخندساده:


یک سوال داشتم از خدمتتون

این بخش رو ممکن هست کمی بیشتر توضیح بدین؟

یا اینکه خود اسکریپت رو کپی کنید و دستی روی دیتابیس مقصد اجرا کنید.

در واقع چطور به صورت دستی باید اسکریپت رو روی سیستم مقصد run کرد؟

بی نهایت ممنونم

rahmatipoor
سه شنبه 03 مهر 1397, 11:22 صبح
خیلی ممنون

بسیار لطف کردین

تشکر از همه ی دوستان :لبخندساده:


یک سوال داشتم از خدمتتون

این بخش رو ممکن هست کمی بیشتر توضیح بدین؟

یا اینکه خود اسکریپت رو کپی کنید و دستی روی دیتابیس مقصد اجرا کنید.

در واقع چطور به صورت دستی باید اسکریپت رو روی سیستم مقصد run کرد؟

بی نهایت ممنونم





اگه از ADO.net استفاده می کنید که میتونید مثل بقیه دستورات اس کیو ال سرور از طریق یک command اون رو روی دیتابیس اجرا کنید.
یا اینکه توی sql server management studio یک کوئری جدید ایجاد کنید و اسکریپت رو اونجا کپی و اجرا کنید

همچنین توی توضیحات گفتم که میتونید یک فایل exe خروجی بگیرید و اون فایل رو روی سیستم مقصد اجرا کنید. نیاز به هیچ برنامه دیگه ای هم نداره. من خودم از این روش استفاده می کنم

mahdi006
دوشنبه 20 اردیبهشت 1400, 08:32 صبح
سلام وقت شما بخیر ، خیلی ممنونم از پاسخگویی تون عزیزان:قلب:

عذر میخوام ، بنده از روش کدفرست استفاده میکنم
امکانش هست در رابطه با روش Migration هم توضیح بدید که فرمودید کم دردسر تره تا استفاده کنم؟
ضمنا داخل این روش با مشکلی روبه رو نمیشیم و دیتابیس در سیستم مشتری هم به خوبی آپدیت میشه و اطلاعاتش حفظ میشه؟