‫انتقال دیتابیس bugnet به MS SQL 2008

bugnet (نرم‌افزار issue tracking دات‌نتی) را در جایی نصب کرده بوده و دیتابیسش را در SQL Server 2005 Express قرار داده بودم. به دلایلی تصمیم گرفتم دیتابیس را به نسخه‌ای از MS SQL 2008 منتقل کنم. یک دیتابیس خام با استفاده از installer باگ‌نت درست کردم و سعی کردم دیتا را از SQL 2005 Express به آن export کنم اما به خطاهایی برخورد کردم و موفق نشدم. به همین دلایل از روال دیگری برای انتقال دیتا استفاده کردم:

۱- یک دیتابیس خالی ساختم و دیتای قبلی را با استفاده از امکان 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

BugNET یک نرم‌افزار Issue Tracking کد باز است که با ASP.NET نوشته شده است. قبلاً در سایت آن چیزهای خوبی راجع به امکانات آن خوانده بودم. با این که IssueTracker.NET خیلی رایج‌تر از BugNET است اما امکانات BugNET بیشتر و بهتر به نظر می‌رسید. به همین خاطر تصمیم گرفتم آن را نصب کرده و امکانات آن را از نزدیک ببینم.

خوشبختانه با تعریف اولین پروژه در BugNET فهمیدم که BugNET امکانات مدیریت پروژه را تا حد خوبی پوشش می‌دهد. چیزی که فکر می‌کردم به غیر از جیرا در هیچ نرم‌افزار Issue Tracking دیگری وجود نداشته باشد. BugNET هم امکان تعریف Category و Milestone را دارد و هم امکان استفاده از Issue Typeهایی غیر از نوع باگ. علاوه بر اینها امکان تعریف دسترسی‌ها، تعریف Queryهای مختلف و نگهداری History ایشوها را هم داراست. به همین دلیل می‌توان از آن به عنوان یک نرم‌افزار مدیریت پروژه هم استفاده کرد.

یکی دیگر از امکانات خوب BugNET امکان تعریف نوع Issueها، نوع Statusها، نوع اولویت‌ها و نوع Resolutionهای دلخواه بر حسب نیاز است. در واقع شما هر وقت که یک پروژه جدید تعریف می‌کنید خودتان باید تک تک انواع Issueها و غیره را با نسبت دادن اسم مناسب و تخصیص icon مناسب تعریف کنید. به این ترتیب BugNET را می‌توان کاملاً Customizable نامید.

به نظر می‌آید BugNET موارد امنیتی را به خوبی رعایت کرده باشد. چون هم Roleهای مختلفی را می‌توان تعریف کرد و هم به ازای هر Role می‌توان دسترسی‌های خیلی مختلفی را تعریف کرد. هر پروژه یا هر Issue را به دلخواه می‌توان به صورت غیر خصوصی تعریف کرد. امکان ثبت نام کاربران به طور خودکار هم وجود دارد. علاوه بر اینها ظاهراً می‌توان با استفاده از OpenID به BugNET لاگین کرد. همه اینها در کنار هم به شما امکان می‌دهد تا بتوانید BugNET را هم در محیط اینترانت و هم در محیط اینترنت مورد استفاده قرار دهید.

نصب BugNET یکی دو تا قلق کوچک دارد. BugNET نیاز به فریمورک 3.5 دارد. برای دیتابیس هم احتیاج به MS SQL 2005 و بالاتر و یا نسخه Express همان دیتابیس‌ها دارد. به هنگام نصب BugNET باید صفحه Install.aspx را اجرا کنید. در همین حین به چند خط web.config گیر داده می‌شود. من آنها را کامنت کردم و هیچ مشکل خاصی به وجود نیامد. قسمت بد BugNET تنظیم دسترسی‌ها است. در بیشتر برنامه‌های مشابه کافی است که به یکی دو تا فولدر خاص مثل App_Data دسترسی full داده شود. ولی در مورد bugNET باید به کل فولدری که فایل‌ها و فولدرهای bugNET در آن قرار دارد دسترسی full دارد. به همین علت نمی‌توان BugNET را در root یک domain یا حتی sub domain نصب کرد. چون ابزارهای سروری مثل Plesk اجازه تغییر دسترسی فولدرهای حاوی root مثل httpdocs را نمی‌دهند. متاسفانه در BugNET نمی‌توان از تقوم هجری استفاده کرد. مشکل راست به چپ نویسی هم مثل همیشه وجود دارد. مشکل راست به چپ نویسی را می‌توان با استفاده از کاراکترهای کمکی صفحه کلید استاندارد ۹۱۴۷ تا اندازه‌ای حل کرد. البته BugNET کدباز بوده و می‌توان در صورت علاقه کل آن را فارسی کرد.