PDA

View Full Version : گفتگو: چطور میشه یه CMS رو از راه دور آپدیت کرد



shahab_ksh
شنبه 16 آذر 1387, 22:48 عصر
با سلام

یه CMS رو در نظر بگیرید که تشکیل شده از فایلهای مختلف بانک اطلاعاتی Sql server که تعداد زیادی StoredProcedure کد شده داره

حالا حالتی رو در نظر بگیرید که 100 مشتری از این نرم افزار استفاده می کنن و شما باگی رو در نرم افزارتون پیدا کردید یا کلا قصد آپدیت کردن نرم افزارتون رو دارید بدون این که مشتری دست به کاری بزنه و بصورت خودکار انجام بشه

شاید اولین سوالی که بپرسید اینه آیا همه سایتها روی یه سرور هستند جواب رو در دو حالت بله یا خیر در نظر بگیرید و نظر بدید

شاید از امنیت این کار ایراد بگیرید ولی به هر حال ارزش فکر کردن رو داره

mp2009
یک شنبه 17 آذر 1387, 11:34 صبح
اول که باید پابلیش برنامه رو بفرستی باشون
جدول ها هم ازشون اسکریپت میگیری و میفرستی
اونا دیگه خودشون باید execute کنند.

Chabok
یک شنبه 17 آذر 1387, 11:43 صبح
با سلام

اینجا چند بحث مطرح میشه :

1.اگر کل CMS ها بصورت پورتال باشند و هسته یکی باشد کار ساده تر است :لبخند:.(خیلی بعیده)

بحث دیگری که مطرحه :
1. تغییرات در دیتابیس (مثل تغییرات فیلدها ، رکوردها و SP ها)
2. تغییرات در کدها و فایل ها

یک راه حل Beta
به نظر من بهتره یک بخشی برای آپدیت CMS طراحی کنید
و تغییرات رو بصورت یک فایل فشرده روی هر سرور آپلود کنید.

این فایل میتونه شامل فایل های جدید تغییر کرده و همچنین کوئری هایی شامل تغییرات دیتابیس باشد .
که این برنامه باید فایل فشرده رو باز کنه . فایل های جدید رو Overwrite کنه و کوئری ها رو هم روی دیتابیس اجرا کنه .
و به این صورت سایت آپدیت میشه :چشمک:

موفق باشید .

shahab_ksh
یک شنبه 17 آذر 1387, 19:56 عصر
مرسی از دوستان این راه حل ها راه حلهای نصب یا ارتقای نرم افزار به وسیله کار بره که همه جا مرسومه

اما من می خام بدون دخالت کاربر این کار انجام بشه مثلا از یه سایت مرکز بشه فایلها رو ... از یه آدرس بگیره و کارهای لازم رو خودش انجام بده ولی با کدوم روی داد در آن واحد این کار انجام بشه !
یه راه مثل آنتی ویروس ها اینه در طول روز یک بار تست کنه ! ولی آن واحدی نیست یه راه دیگه هم استفاده از Ajax که فکر کنم سرور رو بی دلیل مشغول میکنه

milade
یک شنبه 17 آذر 1387, 20:09 عصر
سلام
برنامه رو بزار توی یه صفحه خاص یا توی session_start حالا هر بار به وب سرویست وصل بشه و چک کنه ببینه باید چی کار کنه
حالا میخوای چی اپدیت کنی؟!

Chabok
دوشنبه 18 آذر 1387, 00:50 صبح
با سلام

خوب میتونید از روی سرور اصلی یک فایل xml از آخرین ورژن رو چک کنید . اگه نیاز به آپدیت بود فایل فشرده مورد نظر ورژن جدید به روی سرور CMS دانلود بشه و سپس همون عملیات انجام بشه .

یا به قول آقای میلادای از وب سرویس ورژن رو چک کنید .

اینکار میتونه توی پنل مدیریت هنگام ورود مدیر چک بشه و پیغام "ورژن جدید موجود است . آیا نیاز به نصب آن دارید ؟ :لبخند:" نمایش داده بشه .
و در صورت تایید عملیات انجام بشه.

موفق باشید .

mahdi_farhani
دوشنبه 18 آذر 1387, 01:50 صبح
کاری مشابه به دات نیوک را میتونی انجام بدی ( که البته دوستان اشاره کردن )
از سرور اصلی یک ورژن رو چک کنه اگر با ورژن جاری متفاوت بود دو حالت پیش میاد ، یا اجباری هست باید به روز رسانی کنه و یا اختیاری .
یک راه دیگه هم هست که یک winapp بنویسی که اطلاعات سایت ها درونش باشه ، و بعد به هرکدوم متصل بشه و کارهای لازم از قبیل تغییر پایگاه داده ، تغییر در فایلها، حذف فایل ، درج فایل و.... رو انجام بده .