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 hostim të besueshëm për faqe interneti me mbrojtje DDoS, serverë VPS VDS 🔥 Blini hostim të besueshëm për faqe interneti me mbrojtje DDoS, serverë VPS VDS - ProHoster