انتشار پروژه FerretDB 0.3 منتشر شده است که به شما امکان می دهد بدون ایجاد تغییر در کد برنامه، DBMS MongoDB مبتنی بر سند را با PostgreSQL جایگزین کنید. FerretDB به عنوان یک سرور پراکسی پیاده سازی شده است که تماس های MongoDB را به پرس و جوهای SQL به PostgreSQL ترجمه می کند، که به شما امکان می دهد از PostgreSQL به عنوان ذخیره سازی واقعی استفاده کنید. کد در Go نوشته شده و تحت مجوز Apache 2.0 توزیع شده است.
نیاز به مهاجرت ممکن است در ارتباط با انتقال MongoDB به مجوز اختصاصی SSPL ایجاد شود که بر اساس مجوز AGPLv3 است، اما باز نیست، زیرا شامل یک الزام تبعیض آمیز برای ارائه تحت مجوز SSPL نه تنها خود کد برنامه است. ، بلکه کدهای منبع همه اجزای درگیر در ارائه خدمات ابری.
مخاطب اصلی FerretDB کاربرانی هستند که از قابلیت های پیشرفته MongoDB در برنامه های خود استفاده نمی کنند، اما می خواهند از یک پشته نرم افزاری کاملا باز استفاده کنند. در مرحله فعلی توسعه، FerretDB هنوز تنها بخشی از قابلیتهای MongoDB را پشتیبانی میکند که اغلب در برنامههای معمولی استفاده میشوند. در آینده، آنها قصد دارند به سازگاری کامل با درایورهای MongoDB دست یابند و امکان استفاده از FerretDB را به عنوان جایگزینی شفاف برای MongoDB فراهم کنند.
MongoDB جایگاهی بین سیستمهای سریع و مقیاسپذیر که بر روی دادههای کلید/مقدار و DBMSهای رابطهای که عملکردی هستند و به راحتی قابل جستجو هستند، اشغال میکند. MongoDB از ذخیره سازی اسناد در قالب JSON مانند پشتیبانی می کند، دارای یک زبان نسبتاً انعطاف پذیر برای ایجاد پرس و جو است، می تواند شاخص هایی را برای ویژگی های ذخیره شده مختلف ایجاد کند، به طور موثر ذخیره سازی اشیاء باینری بزرگ را فراهم می کند، از ثبت عملیات برای تغییر و افزودن داده ها به پایگاه داده پشتیبانی می کند. مطابق با پارادایم Map/Reduce کار می کند، از تکرار و ساخت پیکربندی های مقاوم در برابر خطا پشتیبانی می کند.
نسخه FerretDB 0.3 دستور findAndModify را معرفی کرد که یک سند را تغییر میدهد اما آن را به نسخه اصلی آن برمیگرداند. عملگرهای به روز رسانی فیلد $inc و $set پیاده سازی شده اند. پشتیبانی برای مرتب سازی انواع داده های اسکالر اضافه شده است.
منبع: opennet.ru