ΠŸΡŠΡ€Π²Π°Ρ‚Π° стабилна вСрсия Π½Π° Ρ€Π΅Π»Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ‚Π° Π³Ρ€Π°Ρ„ΠΈΡ‡Π½Π° Π‘Π£Π‘Π” EdgeDB

Налично Π΅ ΠΏΡŠΡ€Π²ΠΎΡ‚ΠΎ стабилно ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π° Π‘Π£Π‘Π” EdgeDB, ΠΊΠΎΠ΅Ρ‚ΠΎ Π΅ Π΄ΠΎΠ±Π°Π²ΠΊΠ° към PostgreSQL с внСдряванС Π½Π° Ρ€Π΅Π»Π°Ρ†ΠΈΠΎΠ½Π΅Π½ Π³Ρ€Π°Ρ„ΠΈΡ‡Π΅Π½ ΠΌΠΎΠ΄Π΅Π» Π½Π° Π΄Π°Π½Π½ΠΈ ΠΈ Π΅Π·ΠΈΠΊ Π·Π° заявки EdgeQL, ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Π½ Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° със слоТни ΠΉΠ΅Ρ€Π°Ρ€Ρ…ΠΈΡ‡Π½ΠΈ Π΄Π°Π½Π½ΠΈ. ΠšΠΎΠ΄ΡŠΡ‚ Π΅ написан Π½Π° Python ΠΈ Rust ΠΈ сС разпространява ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·Π° Apache 2.0. ΠšΠ»ΠΈΠ΅Π½Ρ‚ΡΠΊΠΈΡ‚Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ са ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²Π΅Π½ΠΈ Π·Π° Python, Go, Rust ΠΈ TypeScript/Javascript. ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Ρ инструмСнти Π·Π° ΠΊΠΎΠΌΠ°Π½Π΄Π΅Π½ Ρ€Π΅Π΄ Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Π‘Π£Π‘Π” ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ изпълнСниС Π½Π° заявки (REPL).

ВмСсто ΠΌΠΎΠ΄Π΅Π» Π½Π° Π΄Π°Π½Π½ΠΈ, Π±Π°Π·ΠΈΡ€Π°Π½ Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ, EdgeDB ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½Π° систСма, Π±Π°Π·ΠΈΡ€Π°Π½Π° Π½Π° Ρ‚ΠΈΠΏΠΎΠ²Π΅ ΠΎΠ±Π΅ΠΊΡ‚ΠΈ. ВмСсто външни ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ Ρ‡Ρ€Π΅Π· ΠΏΡ€Π΅ΠΏΡ€Π°Ρ‚ΠΊΠ° Π·Π° опрСдСлянС Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠ°Ρ‚Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ‚ΠΈΠΏΠΎΠ²Π΅Ρ‚Π΅ (Π΅Π΄ΠΈΠ½ ΠΎΠ±Π΅ΠΊΡ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠ°Ρ‚ΠΎ свойство Π½Π° Π΄Ρ€ΡƒΠ³ ΠΎΠ±Π΅ΠΊΡ‚). type Person { изисквано ΠΈΠΌΠ΅ Π½Π° свойство -> str; } Ρ‚ΠΈΠΏ Π€ΠΈΠ»ΠΌ { Π·Π°Π΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π½ΠΎ Π·Π°Π³Π»Π°Π²ΠΈΠ΅ Π½Π° свойство -> str; Π°ΠΊΡ‚ΡŒΠΎΡ€ΠΈ с мноТСство Π²Ρ€ΡŠΠ·ΠΊΠΈ -> Π§ΠΎΠ²Π΅ΠΊ; }

Π˜Π½Π΄Π΅ΠΊΡΠΈΡ‚Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π·Π° ускоряванС Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° заявки. ΠŸΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Ρ‚ сС ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΊΠ°Ρ‚ΠΎ силно въвСТданС Π½Π° свойства, ограничСния Π½Π° стойността Π½Π° свойствата, изчислСни свойства ΠΈ ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ΠΈ. Π₯арактСристикитС Π½Π° схСмата Π·Π° ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΎΠ±Π΅ΠΊΡ‚ΠΈ EdgeDB, която донякъдС напомня Π½Π° ORM, Π²ΠΊΠ»ΡŽΡ‡Π²Π°Ρ‚ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° смСсванС Π½Π° схСми, ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ Π½Π° свойства ΠΎΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΎΠ±Π΅ΠΊΡ‚ΠΈ ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€Π°Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° JSON.

ΠžΡΠΈΠ³ΡƒΡ€Π΅Π½ΠΈ са Π²Π³Ρ€Π°Π΄Π΅Π½ΠΈ инструмСнти Π·Π° ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π½Π° миграция Π½Π° схСма - слСд промяна Π½Π° схСмата, посочСна Π² ΠΎΡ‚Π΄Π΅Π»Π΅Π½ esdl Ρ„Π°ΠΉΠ», просто ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Ρ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° β€œedgedb migration create” ΠΈ Π‘Π£Π‘Π” Ρ‰Π΅ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π° Ρ€Π°Π·Π»ΠΈΠΊΠΈΡ‚Π΅ Π² схСмата ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ Ρ‰Π΅ Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π° скрипт Π·Π° ΠΌΠΈΠ³Ρ€ΠΈΡ€Π°Π½Π΅ към Π½ΠΎΠ²Π° схСма. Π˜ΡΡ‚ΠΎΡ€ΠΈΡΡ‚Π° Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅ Π² схСмата сС прослСдява Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ.

Π—Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° заявки сС ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Ρ‚ ΠΊΠ°ΠΊΡ‚ΠΎ Π΅Π·ΠΈΠΊΡŠΡ‚ Π·Π° заявки GraphQL, Ρ‚Π°ΠΊΠ° ΠΈ собствСният Π΅Π·ΠΈΠΊ EdgeDB, ΠΊΠΎΠΉΡ‚ΠΎ Π΅ адаптация Π½Π° SQL Π·Π° ΠΉΠ΅Ρ€Π°Ρ€Ρ…ΠΈΡ‡Π½ΠΈ Π΄Π°Π½Π½ΠΈ. ВмСсто ΡΠΏΠΈΡΡŠΡ†ΠΈ, Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈΡ‚Π΅ ΠΎΡ‚ заявката са Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€Π°Π½ΠΈ ΠΏΠΎ структуриран Π½Π°Ρ‡ΠΈΠ½ ΠΈ вмСсто подзаявки ΠΈ JOIN, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° посочитС Π΅Π΄Π½Π° заявка Π½Π° EdgeQL ΠΊΠ°Ρ‚ΠΎ ΠΈΠ·Ρ€Π°Π· Π² Π΄Ρ€ΡƒΠ³Π° заявка. ΠŸΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Ρ‚ сС Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ Ρ†ΠΈΠΊΠ»ΠΈ. 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' } ) } Π·Π° число Π² {0, 1, 2, 3} съюз ( ΠΈΠ·Π±Π΅Ρ€Π΅Ρ‚Π΅ { number, number + 0.5 } );

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€