ورود

View Full Version : اپدیت دیتابیس مشتری



Asad.Safari
چهارشنبه 10 تیر 1388, 12:30 عصر
با سلام ,

ما دست مشتری هامون یه برنامه دادیم و اونا هم چند ماهه که اطلاعاتشون زدن رو این برنامه ... حالا ما رو این دیتابیس برنامه مون تغییرات دادیم , مثلا در بعضی از جداول فیلد اضافه کردیم و یا جدول اضافه کردیم ...

آیا راهی است که بدون اینکه داده های اینا از بین بره , جدول هاشون رو بشه آپدیت کرد ؟

مثلا یه روش مقایسه ای که جدول ها رو یکی یکی مقایسه کنه و هر کدوم فیلد ها رو نداشت بهش اضافه کنه !؟!؟


موفق باشید

AminSobati
پنج شنبه 11 تیر 1388, 15:17 عصر
دوست عزیزم،
شما میتونین تغییرات خودتون رو در قالب ALTER TABLE و ALTER PROC و ... اسکریپت کنین و به مشتری بدین.
هرچند نرم افزارهایی برای Database Compare وجود دارند که کار شما رو راحت تر میکنند

aghamirzaei_b
شنبه 13 تیر 1388, 18:06 عصر
دو راه كلی وجود داره :
1- تمام تغییرات دیتابیس رو اسكریپت كنین. كه این خطرش اینه اگه تغییری رو فراموش كرده باشید و زمان انجام اون تغییر همون موقع اسكریپت نشده باشه ، احتمال فراموشی وجود داره و با توجه به نوع سوالتون فكر می كنم این كار رو انجام ندادید!
2- یك دیتابیس خالی از آخرین وضعیت تهیه كنید و با استفاده از DTS(Data Transformation Service) داده ها رو از دیتابیس قدیمی به جدید منتفل كنید. حواستون باشه با توجه به Relation ها، دیتا نمیتونن توی یك مرحله منتقل بشن و باید بر اساس Dependency ها این كار رو انجام بدید.

Asad.Safari
سه شنبه 16 تیر 1388, 08:37 صبح
دوست عزیزم،
شما میتونین تغییرات خودتون رو در قالب ALTER TABLE و ALTER PROC و ... اسکریپت کنین و به مشتری بدین.
هرچند نرم افزارهایی برای Database Compare وجود دارند که کار شما رو راحت تر میکنند

مشکل همین جا است که ما حدود 20 تا مشتری داریم که نمی دونیم به کدوم یک کدوم ورژن رو دادیم ... منظورم ورژن دیتابیس می باشد . این مشکل رو میشه با if Exist حل کرد .... ولی در procedure ها باید اول همشون پاک بشن و بعدا procedure ها جدید جایگزین بشن ...

راهی برای پاک کردن کلیه procedure ها و View ها می دونید ؟ منظورم کد SQL است.


موفق باشید

AminSobati
سه شنبه 16 تیر 1388, 19:36 عصر
کار مشکلی نیست، میتونین با یک Cursor اسم تمام Objectها رو پیمایش و Drop کنید