۱- یک دیتابیس خالی ساختم و دیتای قبلی را با استفاده از امکان Export به آن کپی کردم.
۲- روال Export قدرت تشخیص viewها را نداشت. در صفحه انتخاب جداول باید تیک viewها برداشته شود.
۳- باگنت را به دیتابیس جدید وصل کردم. اولین خطایی که دیده میشد خطای Could not find stored procedure ‘BugNet_HostSetting_GetHostSettings’. بود.
۴- یک دیتابیس خام و خالی را با کمک installer باگنت ساختم.
۵- با استفاده از گزینه Tasks – Generate Scripts دیتابیس مرحله قبلی را انتخاب کرده و گزینههای Stored Procedures و Views را انتخاب کنید.
۶- اسکریپت حاصله را در دیتابیس مرحله اول که همان دیتابیس اصلی است اجرا کردم. اصلاح use database نباید فراموش شود.
۷- یک بار خطای Item has already been added. Key in dictionary: ‘AdminNotificationUsername’ Key being added: ‘AdminNotificationUsername’ را دیدم. علت آن installer بود. که رکوردهای جدول HostSettings را duplicate کرده بود. رکوردهای تکراری این جدول باید پاک میشدند.
۸- اگر مقدار InstallationDate در AppSettings وجود نداشته باشد رکوردهای تکراری مجدداً اضافه میشود.
۹- همه مراحل اینجا را میشد یک جور دیگر هم انجام داد. ایجاد دیتابیس آماده توسط باگنت، پاک کردن فقط جداول آن، export داده از دیتابیس حاوی دادهها.
۱۰- از اینجا به بعد مشکل login کردن وجود دارد. bugnet از ASP.NET Membership استفاده میکند. پس با کمی شناخت از مدل ASP.NET به راحتی میتوان مشکلات login و کاربری را حل کرد.
انتقال دیتابیس bugnet به MS SQL 2008
bugnet (نرمافزار issue tracking داتنتی) را در جایی نصب کرده بوده و دیتابیسش را در SQL Server 2005 Express قرار داده بودم. به دلایلی تصمیم گرفتم دیتابیس را به نسخهای از MS SQL 2008 منتقل کنم. یک دیتابیس خام با استفاده از installer باگنت درست کردم و سعی کردم دیتا را از SQL 2005 Express به آن export کنم اما به خطاهایی برخورد کردم و موفق نشدم. به همین دلایل از روال دیگری برای انتقال دیتا استفاده کردم:
Comments
ممنون
مهندس امکان بکاپ گرفتن تو سرور 2005 نبود!؟
برای کارهایی از این دست بنظرم بهترین روش(اگه امکان بکاپ گرفتن نبود) استفاده از SQL Compare هست.
نمی شد خود فایل های بانک رو (MDF+LDF) در 2008 دوباره Attach کرد؟
یادم رفته بود بگم که به غیر از export کردن هیچ امکان دیگری روی دیتابیس مبدا نبود.
این راه جواب نمیداد؟
1- با SQL Management از طریق Generate Script کل بانک اطلاعات قبلی را ایجاد کنیم.2- اسکریپت را در SQL Server 2008 اجرا کنیم.
3- Connection String های Bugnet را بر روی بانک جدید تنظیم کنیم.
به جای مراحل 1 و 2 میتوان از Backup هم استفاده کرد.
تقریباً همه روشها را امتحان کرده بودم. هر کدومشون به یک علتی دچار خطا شدند. چاره دیگهای غیر از این روش نداشتم.