FerretDB 0.3 tashmë është lëshuar, zbuloni se çfarë ka të re në këtë modernizim MangoDB

Disa javë më parë ne ndajmë këtu në blog lajmet për ndryshimi i emrit të projektit MangoDB i cili ju lejon të zëvendësoni DBMS të orientuar drejt dokumenteve të MongoDB me PostgreSQL pa bërë asnjë ndryshim në kodin e aplikacionit tuaj.

Emri i ri i projektit është FerretDB dhe së fundmi u njoftua lëshimi i versionit 0.3 të projektit. Versioni FerretDB 0.3 prezanton komandën findAndModify, e cila modifikon një dokument, por kthen versionin e tij origjinal, si dhe operatorët e përditësimit në terren, ndër të tjera.

Për ata që nuk janë ende në dijeni të FerretDB, duhet ta dini këtë ky është implementuar si një server proxy që përkthen thirrjet në MongoDB në pyetje SQL në PostgreSQL, i cili ju lejon të përdorni PostgreSQL si ruajtje reale.

Nevoja për migrim mund të lindë në lidhje me kalimin e MongoDB në një licencë SSPL jo të lirë, e cila bazohet në licencën AGPLv3, por nuk është e hapur, pasi përmban një kërkesë diskriminuese për të ofruar nën licencën SSPL jo vetëm aplikacionin vetë kodin, por edhe kodet burimore të të gjithë komponentëve të përfshirë në ofrimin e shërbimit cloud.

Audienca kryesore e synuar për FerretDB janë përdoruesit që nuk përdorin veçoritë e përparuara të MongoDB në aplikacionet e tyre, por duan të përdorin një pirg softuerësh plotësisht të hapur.

Në fazën aktuale të zhvillimit, FerretDB ende mbështet vetëm një pjesë të veçorive të MongoDB që përdoren më shpesh në aplikacione tipike. Në të ardhmen, ata planifikojnë të arrijnë mbështetje të plotë të shoferit për MongoDB dhe të ofrojnë aftësinë për të përdorur FerretDB si një zëvendësim transparent për MongoDB.

MongoDB zë një vend midis sistemeve të shpejta dhe të shkallëzueshme që funksionojnë në të dhëna kyçe/vlerash dhe DBMS-ve relacionale që janë funksionale dhe të lehta për t'u kërkuar.

MongoDB mbështet ruajtjen e dokumenteve në një format të ngjashëm me JSON, ka një gjuhë mjaft fleksibël për gjenerimin e pyetjeve, mund të krijojë indekse për atribute të ndryshme të ruajtura, siguron ruajtje efikase të objekteve të mëdha binare, mbështet regjistrimin e operacioneve për të ndryshuar dhe shtuar të dhëna në bazën e të dhënave. mund të funksionojë sipas paradigmës Harta/Redukto, mbështet replikimin dhe ndërtimin e konfigurimeve tolerante ndaj gabimeve.

Për shkak të dallimeve në semantikën e funksioneve PostgreSQL dhe MongoDB json, kishte një mospërputhje në sjellje gjatë krahasimit dhe renditjes së llojeve të ndryshme. Për të zgjidhur këtë problem, një mostër e të dhënave të tepërta është nxjerrë tani nga PostgreSQL dhe filtrimi i rezultatit bëhet në anën FerretDB, gjë që bëri të mundur përsëritjen e sjelljes së MongoDB në shumicën e situatave.

Risitë kryesore të FerretDB 0.3

Siç u përmend në fillim, versioni i ri i FerretDB 0.3 dallohet për prezantimin e komandën findAndModify, i cili modifikon një dokument, por kthen versionin e tij origjinal.

Ndryshime të tjera që bien në sy është se trajtimi negativ zero është përmirësuar, si dhe u shtua mbështetje për renditjen e llojeve të të dhënave skalare.

Gjithashtu janë theksuar Operatorët e rinj të përditësimit të fushës të zbatuar: $inc dhe $set, plus mbështetje për porositjen e llojeve skalare të të dhënave u shtua.

Nga ana tjetër, përmendet se janë bërë përmirësime të ndryshme për trajtimin e versioneve PostgreSQL dhe MongoDB.

Përveç kësaj, vihet re gjithashtu se testi i pasaktë për operatorin $mod është rregulluar, gjithashtu se testi është lëshuar në të gjitha sistemet operative ARM64 dhe se është shtuar më shumë dukshmëri për nivelet e regjistrimit të gabimeve të ruterit/proxy.

Nga ndryshimet e tjera që dallohen nga ky version i ri:

  • Përditëso CODEOWNERS
  • Sinkronizoni kontrollorët dummy dhe fq
  • Riemërtoni OP_*konstantet në OpCode*konstante
  • Përmirëso gopkg.in/yaml.v3
  • Përplas gopkg.in/yaml.v3 në vegla
  • Bëni Lloji Path
  • Panik në vlerat e porosive të papritura
  • Shtoni disa komente te funksionet dhe variablat
  • Hiq kodin e vdekur

Më në fund nëse jeni të interesuar të dini më shumë për të, ju mund të kontrolloni detajet Në lidhjen vijuese.


Lini komentin tuaj

Adresa juaj e emailit nuk do të publikohet. Fusha e kërkuar janë shënuar me *

*

*

  1. Përgjegjës për të dhënat: AB Internet Networks 2008 SL
  2. Qëllimi i të dhënave: Kontrolloni SPAM, menaxhimin e komenteve.
  3. Legjitimimi: Pëlqimi juaj
  4. Komunikimi i të dhënave: Të dhënat nuk do t'u komunikohen palëve të treta përveç me detyrim ligjor.
  5. Ruajtja e të dhënave: Baza e të dhënave e organizuar nga Occentus Networks (BE)
  6. Të drejtat: Në çdo kohë mund të kufizoni, rikuperoni dhe fshini informacionin tuaj.