کدام دیتابیسها با سیستم migration جنگو سازگارترند؟

از بین دیتابیس های معمول برای استفاده در یک وب اپلیکیشن MySQL، PostgreSQLو SQLite پراستفاده ترند. اگر بخواهیم برای یک پروژه Django از یکی از اینها استفاده کنیم باید بدانیم سیستم Migration جنگو با همه آنها به صورت یکسان سازگار نیست. تفاوت سازگاری در آنها در چیست؟

PostgreSQL

سازگارترین دیتابیس با Migration جنگو PostgreSQL است

MySQL

این دیتابیس در عملیات تغییر schema در model ها از تراکنشها transactions پشتیبانی نمی کند (البته با موتور ذخیره سازی InnoDB از transactions هم پشتیبانی میکند به جز برخی عملیاتهای دیتابیس مانند تغییر در schema که در لینک میبینید) یعنی اگر در عملیات مایگریشن به خطایی برخورد بکند تغییرات قبلی rollback نمی شود و ممکن است دیتابیس را معیوب کند و باید تغییرات را به صورت دستی درست کنیم.

علاوه بر آن در هر عملیات مایگریشن این دیتابیس تمام اسکیماها و جدولها و ایندکس ها را از اول rewrite میکند که این در دیتابیسهای بزرگ پرهزینه است زیرا ممکن است دیتابیس production برای زمان زیادی پاسخگو نباشد.

نهایتا MySQL محدودیتهای دیگری هم دارد مانند طول نام ستونها و Index ها. این یعنی ممکن است اگر ایندکسی برای دیتابیس دیگر کار کند که طول نام آن از محدودیت MySQL بیشتر باشد با مایگریشن به این دیتابیس عملیات به خطا بخورد.

SQLite

استفاده از این دیتابیس در پروداکشن و پروژه های جدی توصیه نمی شود بخاطر محدودیتاهای شدید در تغییر اسکیما در عملیات مایگریشن که جزئیات این محدودیت ها در این لینک قابل مشاهده است.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *