Prima stabilis emissio EdgeDB DBMS praesto est, quae additamentum est ad PostgreSQL cum exsecutione relationis graphi datae exemplar et linguae interrogationis EdgeQL, optimized ad operandum notitia hierarchica multiplici. Codex in Pythone et Rust scriptus est et sub Apache 2.0 licentia distribuitur. Bibliothecae clientelae parantur Pythone, Go, Rust et TypeScript/Javascript. Recta instrumenta ad DBMS administrationem et exsecutionem interrogationis interactive imperium praebet (REPL).
Instead of the table-funded information model, EdgeDB utitur systema declarativa secundum rationes obiecti. Loco clavium exterarum, relatio relationis inter genera definitur (unum obiectum ut proprietas alterius obiecti). type Person {required property name -> str; } type Movie { required property title -> str; multi link histriones -> Person; }
Indices adhiberi possunt ad processum interrogationis accelerandum. Features ut validae possessiones typing, proprietas pretii restrictiones, possessiones computatae, et rationes conditae sustentantur. Lineamenta objecti EdgeDB schematis reponendi, quod ORM aliquantum simile est, includunt facultatem schemas miscendi, proprietates ex diversis obiectis nexus, et subsidium JSON integrandum.
Instrumenta instructa providentur ad schema migrationis recondendum - mutato schemate in separato esdl lima definito, mox "transmigrationis extremitas creo" mandatum et DBMS differentias in schemate resolvet et scripturam interactive generabit ad migrandum. schema novum. Schematis historia mutationes automatice pervestigata est.
Ad interrogationes generandas, tam GraphQL linguae interrogationis quam linguae proprietatis EdgeDB, quae accommodatio SQL ad notitias hierarchicas est, sustentantur. Loco electronicorum, interrogationes proventus in structuram redacti sunt, et pro subqueriis et JOINs, unam interrogationem EdgeQL exprimere potes sicut expressionem intra aliam interrogationem. Transactiones et cyclos confirmantur. eligere cinematicam {titulum, actores: {nomen} } filter .title = "Matrix" inserta cinematographica { title := "Matrix Resurrectionum", actores := (select Persona filter .name in {'Keanu Reeves', 'Carrie- Anne Moss', 'Laurence Fishburne' } ) numero in {0, 1, 2, 3} unione (select {numerus, numerus + 0.5} );
Source: opennet.ru
