طراحی وب
تغییر Collationهای یک دیتابیس
شنبه, اردیبهشت ۲۶م, ۱۳۸۸ | طراحی وب | ۴ نظر
میخواستم برای کمک به دوست تازه ام سینا ارزانی، اطلاعات انجمن قبلی سریال لاست را به انجمن جدید آن منتقل کنم که با مشکل اشتباه در Collation انجمن قبلی مواجه شدم. Collation مربوط به دیتابیس، جداول و فیلدها در انجمن قبلی فارسی نبود و بنابراین اطلاعات هم با فرمت نادرست در آن ذخیره شده بود.
این مشکلی است که خیلی از دیتابیس های Mysql در حال حاضر دارند و Collation اغلب آنها هم بصورت latin1_swedish_ci تنظیم شده است و اصولا یونیکد نیستند. برای تبدیل Collation برنامه ای نوشتم که فقط کافی است نام دیتابیس را به آن بدهید و سپس تمام جداول و فیلدهای آن را به Collation مورد نظر شما تبدیل میکند. Collation درست برای زبان فارسی utf8_persian_ci است و بهتر است Collation تمام قسمتهای دیتابیس شما بر روی این تنظیم باشد. نکته جالب در مورد این برنامه این است که بعد از تصحیح Collation، فرمت اطلاعات شما هم درست میشود. اما اگر بر حسب اتفاق چنین اتفاقی برای شما نیفتاد باید بعد اصلاح Collationها یک برنامه بنویسید که با Charset مربوط به دیتابیس قبلی به آن متصل شوید و اطلاعات را بخوانید و بعد با Charset مربوط به دیتابیس جدید به دیتابیس جدید (که رکوردی در آن ندارد) وصل شوید و اطلاعات را درون آن بریزید. البته همانطور که گفتم نیازی به این مورد نیست و خود این برنامه با کمال تعجب این کار دومی را هم انجام میدهد!
نکته دیگراینکه اگر نمیخواهید Collation همه جداول و فیلدها با این برنامه اصلاح شوند میتوانید جداول مورد نظر خود را در یک دیتابیس جدا بریزید و نام دیتابیس جدید را به این برنامه بدهید. نکته آخر هم اینکه قبل از انجام هرکاری از اطلاعات خود نسخه پشتیبان تهیه کنید که هیچگونه مسئولیتی در قبال از دست رفتن احتمالی اطلاعات شما نخواهم پذیرفت!
پی نوشت: خیلی وقتها علت اینکه اینجا مطلب تخصصی مینویسم این است که خودم درآینده به آن نیاز پیدا میکنم!
وبلاگهای بروز شده قزوین
موضوعات
بایگانی
- مرداد ۱۳۸۹
- تیر ۱۳۸۹
- خرداد ۱۳۸۹
- اردیبهشت ۱۳۸۹
- فروردین ۱۳۸۹
- اسفند ۱۳۸۸
- بهمن ۱۳۸۸
- دی ۱۳۸۸
- آذر ۱۳۸۸
- آبان ۱۳۸۸
- مهر ۱۳۸۸
- شهریور ۱۳۸۸
- مرداد ۱۳۸۸
- تیر ۱۳۸۸
- خرداد ۱۳۸۸
- اردیبهشت ۱۳۸۸
- فروردین ۱۳۸۸
- اسفند ۱۳۸۷
- بهمن ۱۳۸۷
- دی ۱۳۸۷
- آذر ۱۳۸۷
- آبان ۱۳۸۷
- مرداد ۱۳۸۷
- تیر ۱۳۸۷
- خرداد ۱۳۸۷
- اردیبهشت ۱۳۸۷
- فروردین ۱۳۸۷
- اسفند ۱۳۸۶
- بهمن ۱۳۸۶
- دی ۱۳۸۶
- آذر ۱۳۸۶
- آبان ۱۳۸۶
- مهر ۱۳۸۶
- شهریور ۱۳۸۶
- مرداد ۱۳۸۶
- تیر ۱۳۸۶
- خرداد ۱۳۸۶
- اردیبهشت ۱۳۸۶
- فروردین ۱۳۸۶
- اسفند ۱۳۸۵
- مرداد ۱۳۸۴
- تیر ۱۳۸۴
- اردیبهشت ۱۳۸۴
- فروردین ۱۳۸۴
- مرداد ۱۳۸۳