diff --git a/docs/datamodel/extensions.rst b/docs/datamodel/extensions.rst index 743312e6035..d76174c4961 100644 --- a/docs/datamodel/extensions.rst +++ b/docs/datamodel/extensions.rst @@ -8,9 +8,92 @@ Extensions are the way EdgeDB adds more functionality. In principle, extensions could add new types, scalars, functions, etc., but, more importantly, they can add new ways of interacting with the database. -- ``edgeql_http``: enables :ref:`EdgeQL over HTTP ` -- ``graphql``: enables :ref:`GraphQL ` -- ``auth``: enables :ref:`EdgeDB Auth ` +Built-in extensions +------------------- + +There are a few built-in extensions available: + +- ``edgeql_http``: enables :ref:`EdgeQL over HTTP `, +- ``graphql``: enables :ref:`GraphQL `, +- ``auth``: enables :ref:`EdgeDB Auth `, +- ``ai``: enables :ref:`ext::ai module `, + +- ``pg_trgm``: enables ``ext::pg_trgm``, which re-exports + `pgtrgm `__, + +- ``pg_unaccent``: enables ``ext::pg_unaccent``, which re-exports + `unaccent `__, + +- ``pgcrypto``: enables ``ext::pgcrypto``, which re-exports + `pgcrypto `__, + +- ``pgvector``: enables ``ext::pgvector``, which re-exports + `pgvector `__, + +.. _ref_datamodel_using_extension: + +To enable these extensions, add a ``using`` statement at the top level of your schema: + +.. code-block:: sdl + + using extension auth; + + + +Standalone extensions +--------------------- + +Additionally, standalone extension packages can be installed via the CLI. + +List installed extensions: + +.. code-block:: bash + + $ edgedb extension list -I my_instance + ┌─────────┬─────────┐ + │ Name │ Version │ + └─────────┴─────────┘ + +List available extensions: + +.. code-block:: bash + + $ edgedb extension list-available -I my_instance + ┌─────────┬───────────────┐ + │ Name │ Version │ + │ postgis │ 3.4.3+6b82d77 │ + └─────────┴───────────────┘ + +Install the ``postgis`` extension: + +.. code-block:: bash + + $ edgedb extension install -I my_instance -E postgis + Found extension package: postgis version 3.4.3+6b82d77 + 00:00:03 [====================] 22.49 MiB/22.49 MiB + Extension 'postgis' installed successfully. + +Check that extension is installed: + +.. code-block:: bash + + $ edgedb extension list -I my_instance + ┌─────────┬───────────────┐ + │ Name │ Version │ + │ postgis │ 3.4.3+6b82d77 │ + └─────────┴───────────────┘ + +After installing extensions, make sure to restart your instance: + +.. code-block:: bash + + $ edgedb instance restart -I my_instance + +Standalone extensions can now be declared in the schema, same as :ref:`built-in +extensions `. + +To restore a dump that uses a standalone extension, that extension must be installed +before the restore process. .. list-table::