Baza të dhënash EdgeDB u ribë në Gel. Publikimi i Gel 6.0

Zhvilluesit e bazës së të dhënave EdgeDB shpallën ribërjen e projektit në Gel. Njëkohësisht, është formuar një lëshim i ri të rëndësishëm - Gel 6.0. Si arsye për ndryshimin e emrit, përmendet dëshira për të eliminuar konotacionet që shtrembërojnë, të shkaktuara nga përdorimi i fjalës 'edge', për shkak të së cilës shumë e perceptojnë projektin si një bazë të dhënash për llogaritje edge ose si një bazë të dhënash të orientuar nga grafi. Ribërja preku vetëm elementët e markës. Struktura e projektit, qëllimet dhe ekipi mbetën të njëjta. Veglat dhe bibliotekat në publikimin e ri janë ribërë, por për të siguruar përputhshmërinë e prapme, është ruajtur mundësia e përdorimit të emrave të vjetër përmes lidhjeve simbolike dhe mbështetjeve.

Projekti zhvillohet në formën e një shtrese mbi PostgreSQL, duke zbatuar një model të dhënash relacional-grafik dhe gjuhën e pyetjeve EdgeQL, të optimizuar për punë me të dhëna hierarkike të ndërlikuara. Kodi është shkruar në gjuhët Python dhe Rust (parser dhe pjesët kritike për performancën), dhe shpërndahet nën licencën Apache 2.0. Bibliotekat e klientëve janë përgatitur për gjuhët Python, Go, Rust, .NET, Elixir dhe TypeScript/Javascript. Ofrohet një mjet komandash për menaxhimin e bazës së të dhënave dhe për ekzekutimin interaktiv të pyetjeve (REPL).

Në Gel aplikohet një sistem deklarativ i bazuar në llojet objektore në vend të modelit të dhënash të bazuar në tabela. Në vend të çelësave të jashtëm (foreign key) për të përcaktuar lidhjen midis llojeve, përdoret lidhja përmes referencave (një objekt mund të përdoret si pronë e një objekti tjetër).

type Person { required name: str; } type Movie { required title: str; multi actors: Person; }

Mundësitë si tipizimi i fortë i pronave, kufizimet e vlerave të pronave, pronat e llogaritura dhe procedurat e ruajtura mbështeten. Nga veçoritë e skemës objektore të ruajtjes Gel, e cila ngjan me ORM, përmendet mundësia e kombinimit të skemave, lidhjes së pronave nga objekte të ndryshme dhe mbështetje e integruar për JSON. Për të acceleruar përpunimin e pyetjeve, mund të përdoren indekset.

Mjetet e integruara për migrimin e skemës së ruajtjes janë të disponueshme - pas ndryshimit të skemës, e cila përcaktohet në një skedar të veçantë esdl, mjafton të ekzekutoni komandën «gel migration create» dhe DBMS do të analizojë ndryshimet në skemë dhe do të gjenerojë në mënyrë interaktive një skenar për kalimin në skemën e re. Historia e ndryshimit të skemës po ashtu gjurmohet automatikisht.

Për formimin e kërkesave, mbështetet gjuhë kërkimesh GraphQL dhe gjuha e saj e vetme EdgeQL, e cila është një adaptim i SQL për të dhënat hierarkike. Në vend të listave, rezultatet e kërkesës paraqiten në një format të strukturuar, dhe në vend të nënkërkesave dhe operacioneve JOIN, ofrohet mundësia e përcaktimit të një kërkese EdgeQL si shprehje brenda një kërkese tjetër. Transaksionet dhe ciklet mbështeten gjithashtu.

select Movie { title, actors: { name } } filter .title = «The Matrix» insert Movie { title := «The Matrix Resurrections», actors := ( select Person filter .name in { ‘Keanu Reeves’, ‘Carrie-Anne Moss’, ‘Laurence Fishburne’ } ) }

Ndryshimet kryesore në Gel 6.0:

  • ËshtĂ« shtuar mundĂ«sia e pĂ«rdorimit tĂ« kĂ«rkesave tradicionale SQL kur lidhet me DBMS pĂ«rmes protokollit Gel ose nĂ« modalitetin e protokollit PostgreSQL. Pritet qĂ« mbĂ«shtetje SQL do ta thjeshtojĂ« migrimin nĂ« Gel tĂ« projekteve ekzistuese, tĂ« cilat tani mund tĂ« kalojnĂ« gradualisht nga SQL, duke vazhduar tĂ« pĂ«rdorin klientĂ«t e vjetĂ«r SQL dhe SQL ORM. Projektet qĂ« fillimisht pĂ«rdorin EdgeQL do tĂ« jenĂ« nĂ« gjendje tĂ« shfrytĂ«zojnĂ« mundĂ«sitĂ« shtesĂ« qĂ« janĂ« nĂ« SQL, por ende nuk janĂ« implementuar nĂ« EdgeQL, si funksionet e dritares, kĂ«rkesat rikursive dhe bllokimet e qarta.
  • ËshtĂ« shtuar mbĂ«shtetje pĂ«r pĂ«rditĂ«simin nĂ« vend, qĂ« nuk kĂ«rkon krijimin dhe rielimin e dump-it tĂ« DB-sĂ« kur kaloni nĂ« njĂ« lĂ«shim tĂ« ri tĂ« rĂ«ndĂ«sishĂ«m. GjatĂ« pĂ«rditĂ«simit nga EdgeDB 5.x nĂ« Gil 6.0, duhet tĂ« pĂ«rdoret metoda e vjetĂ«r, por kur kaloni nga Gil 6.x nĂ« 7.0, rielimi i dump-it nuk do tĂ« kĂ«rkohet.
  • KĂ«rkesat e statistikave tĂ« performancĂ«s janĂ« ruajtur, tĂ« cilat janĂ« tĂ« disponueshme pĂ«rmes objekteve sys::QueryStats.
  • ËshtĂ« shtuar mbĂ«shtetje pĂ«r shtesĂ«n PostgreSQL PostGIS pĂ«r ruajtjen e tĂ« dhĂ«nave hapĂ«sinore qĂ« pĂ«rdoren nĂ« sistemet e informacionit gjeografik.
  • ËshtĂ« shtuar biblioteka std::net pĂ«r dĂ«rgimin e kĂ«rkesave rrjetore (HTTP mbĂ«shtetet) nĂ« mĂ«nyrĂ« asinkrone.
  • PĂ«rveç ext::auth, Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r konfigurimin e ofruesve OpenID Connect.
  • NĂ« pĂ«rditĂ«simin ext::ai​ Ă«shtĂ« rifreskuar lista e modeleve tĂ« mĂ«dha tĂ« gjuhĂ«s mbĂ«shtetur nga OpenAI, Anthropic dhe Mistral.
  • Ofron mundĂ«sinĂ« pĂ«r tĂ« lidhur trajtues tĂ« tjerĂ« pĂ«r komanda nĂ« utilitarin gel.
  • NĂ« EdgeQL Ă«shtĂ« thjeshtuar semantika pĂ«r gjetjen e rrugĂ«ve midis njĂ«sive tĂ« grafikut.
  • NĂ« gel.toml Ă«shtĂ« shtuar konfigurimi "[[watch]]", i cili lejon ekzekutimin e skripteve kur ndodhin ndryshime nĂ« skedarĂ«t e caktuar.
  • NĂ« ORM Drizzle Ă«shtĂ« realizuar mbĂ«shtetje pĂ«r Gel.

Burimi: opennet.ru

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster