EdgeDB is a next-generation graph-relational database designed as a spiritual successor to the relational database.
It inherits the strengths of SQL databases: type safety, performance, reliability, and transactionality. But instead of modeling data in a relational (tabular) way, EdgeDB represents data with object types containing properties and links to other objects. It leverages this object-oriented model to provide a superpowered query language that solves some of SQL’s biggest usability problems.
EdgeDB is a complex system, but we’ve structured the documentation so you can learn it in “phases”. You only need to learn as much as you need to start building your application.
Get Started — Start with the quickstart. It walks through EdgeDB’s core workflows: how to install EdgeDB, create an instance, write a simple schema, execute a migration, write some simple queries, and use the client libraries. The rest of the section goes deeper on each of these subjects.
Schema — A set of pages that break down the concepts of syntax of EdgeDB’s schema definition language (SDL). This starts with a rundown of EdgeDB’s primitive type system (Primitives), followed by a description of (Object Types) and the things they can contain: links, properties, indexes, access policies, and more.
A set of pages that break down EdgeDB’s query language, EdgeQL. It starts
with a rundown of how to declare literal values,
then introduces some key EdgeQL concepts like sets, paths, and type casts.
With the basics established, it proceeds to break down all of EdgeQL’s
insert, and so on.
Guides — Contains collections of guides on topics that are peripheral to EdgeDB itself: how to deploy to various cloud providers, how to integrate with various frameworks, and how to introspect the schema to build code-generation tools on top of EdgeDB.
Standard Library —
This section contains an encyclopedic breakdown of EdgeDB’s built-in types
and the functions/operators that can be used with them. We didn’t want to clutter the EdgeQL section with all the nitty-gritty on each of these.
If you’re looking for a particular function (say, a
replace), go to the
Standard Library page for the relevant type (in this case, String), and peruse the table for what you’re looking for
Complete reference for the
edgedb command-line tool. The CLI is
--help flag after any command to print the
relevant documentation—so you shouldn’t need to reference this section often.
Reference The Reference section contains a complete breakdown of EdgeDB’s syntax (for both EdgeQL and SDL), internals (like the binary protocol and dump file format), and configuration settings. Usually you’ll only need to reference these once you’re an advanced user.
Changelog Detailed changelogs for each successive version of EdgeDB, including any breaking changes, new features, bigfixes, and links to
To actually build apps with EdgeDB, you’ll need to know more than SDL and EdgeQL.
CLI — The most commonly used CLI functionality is covered in the Quickstart. For additional details, we have dedicated guides for Migrations and Projects. A full CLI reference is available under CLI.
Deployment — To publish an EdgeDB-backed application, you’ll need to deploy EdgeDB. Refer to Guides > Deployment for step-by-step deployment guides for all major cloud hosting platforms, as well as instructions for self-hosting with Docker.
strict, strongly typed schema;
powerful and clean query language;
ability to easily work with complex hierarchical data;
built-in support for schema migrations.
EdgeDB is not a graph database: the data is stored and queried using relational database techniques. Unlike most graph databases, EdgeDB maintains a strict schema.
EdgeDB is not a document database, but inserting and querying hierarchical document-like data is trivial.
EdgeDB is not a traditional object database, despite the classification, it is not an implementation of OOP persistence.