مهاجرت به PostgreSQL با جمینای سریعتر میشه
خلاصهٔ کاملتر
تو این پست وبلاگ گوگل کلاد اومده که سناریوی آشنای خیلی از تیمها اینه: مهاجرت از یه دیتابیس تجاری مثل Oracle یا SQL Server به PostgreSQL یا AlloyDB خوب شروع میشه، اسکیماها تبدیل میشن و ترابایتها داده تو چند ساعت منتقل میشه. ولی بعد نوبت به صدها رویهٔ ذخیرهشده، تریگر و تابع سفارشی میرسه که سالها منطق کسبوکار توشون نشسته. نویسنده اسم این بخش رو «مایل آخر» مهاجرت میذاره؛ پیچیدهترین قسمت ماجرا.
تبدیل این منطق به PL/pgSQL یعنی نگاشت تعریف متغیرها، بلوکهای مدیریت خطا، حلقههای کرسر و توابع داخلی — کاری که دستی انجامدادنش برای یه اسکیمای بزرگ ماهها طول میکشه و ریسک خطاش هم بالاست. راهحل گوگل تبدیل کد به کمک هوش مصنوعیه که با جمینای مستقیم داخل Database Migration Service کار میکنه و کد تبدیلشده رو کنار کد اصلی نشون میده تا تیم همونجا بازبینی و ویرایش کنه.
به گفتهٔ نویسنده، فرقش با یه چتبات معمولی چند چیزه: جمینای بهجای یه قطعهکد جدا، کل زمینهٔ دیتابیس رو میبینه — روابط جدولها، نوع دادهها، ویوهای وابسته و ارجاعهای بین رویهها. تبدیل هم کامل داخل مرز پروژهٔ گوگل کلاد و تحت IAM خودتون انجام میشه، پس کد اختصاصی جایی بیرون نمیره. برای نگاشتهای یکبهیک هم بهجای مدل، قواعد قطعی کامپایلر کار میکنه تا خروجی قابل پیشبینی بمونه.
مثالی که آورده شده یه رویهٔ PL/SQL اوراکله که با NVL و DECODE تخفیف پلکانی حساب میکنه؛ جمینای NVL رو به COALESCE و DECODE رو به بلوک CASE تبدیل میکنه و کنارش توضیح میده چرا. بعدش DMS هر آبجکت رو با وضعیت Converted، Warning یا Action Required علامت میزنه و کد تأییدشده اول روی یه نمونهٔ استیجینگ مثل Cloud SQL یا AlloyDB تست میشه. نویسنده میگه نتیجهش اینه که کار ماهها به چند روز کوتاه میشه.
نکات کلیدی:
- تبدیل رویههای ذخیرهشده، تریگرها و توابع سفارشی، گلوگاه اصلی مهاجرت به PostgreSQL هست
- جمینای تو Database Migration Service این کد رو به PL/pgSQL تبدیل میکنه
- کل زمینهٔ اسکیما دیده میشه، نه فقط یه قطعهکد جدا
- تبدیل داخل مرز پروژه و IAM خود شما انجام میشه
- خروجی با وضعیتهای Converted، Warning و Action Required اعتبارسنجی میشه




