Objavljen je izdanak projekta FerretDB 0.3, koji omogućava zamenu dokumentno-orijentisane DBMS MongoDB sa PostgreSQL bez promene u kodu aplikacija. FerretDB funkcioniše kao proxy server koji prevodi zahteve za MongoDB u SQL upite za PostgreSQL, što omogućava korišćenje PostgreSQL kao stvarnog skladišta. Kod je napisan u programskom jeziku Go i distribuira se pod Apache 2.0 licencom.
Potrebna migracija može nastati usled prelaska MongoDB na zatvorenu licencu SSPL, koja se temelji na AGPLv3 licenci, ali nije otvorena, jer sadrži diskriminišući zahtev da se isporučuje ne samo kod same aplikacije, već i izvorni kod svih komponenti uključenih u pružanje cloud usluge pod SSPL licencom.
Glavna ciljna publika FerretDB su korisnici koji ne koriste napredne mogućnosti MongoDB u svojim aplikacijama, ali žele da koriste potpuno otvoreni softverski staklenak. U trenutnoj fazi razvoja, FerretDB podržava samo deo mogućnosti MongoDB, koje se najčešće koriste u standardnim aplikacijama. U budućnosti planiraju da postignu potpunu kompatibilnost sa drajverima za MongoDB i omoguće korišćenje FerretDB kao transparentne zamene za MongoDB.
MongoDB zauzima mesto između brzih i skalabilnih sistema koji upravljaju podacima u formatu ključ/vrednost i relacijskih baza podataka, funkcionalnih i pogodnih za formulisanje upita. MongoDB podržava skladištenje dokumenata u JSON-sličnom formatu, ima dovoljno fleksibilan jezik za formulisanje upita, može kreirati indekse za različite skladištene atribute, efikasno obezbeđuje skladištenje velikih binarnih objekata, podržava logovanje operacija izmene i dodavanja podataka u bazu podataka, može raditi prema paradigmi Map/Reduce, podržava replikaciju i izgradnju otpornih konfiguracija.
U izdanju FerretDB 0.3 implementirana je komanda findAndModify koja menja dokument, ali vraća njegovu prvobitnu verziju. Implementirani su operateri za ažuriranje polja — $inc i $set. Dodata je podrška za sortiranje skalarnih tipova podataka.
Izvor: opennet.ru
