From d1d78ec0ebe34463eb643ac1eae1dee4c62a2031 Mon Sep 17 00:00:00 2001 From: Simon Willison Date: Fri, 23 Jun 2023 13:06:35 -0700 Subject: [PATCH] Better docs for startup() hook --- docs/plugin_hooks.rst | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/plugin_hooks.rst b/docs/plugin_hooks.rst index a4c9d98f..97306529 100644 --- a/docs/plugin_hooks.rst +++ b/docs/plugin_hooks.rst @@ -869,7 +869,9 @@ Examples: `datasette-cors `__, `dat startup(datasette) ------------------ -This hook fires when the Datasette application server first starts up. You can implement a regular function, for example to validate required plugin configuration: +This hook fires when the Datasette application server first starts up. + +Here is an example that validates required plugin configuration. The server will fail to start and show an error if the validation check fails: .. code-block:: python @@ -880,7 +882,7 @@ This hook fires when the Datasette application server first starts up. You can i "required-setting" in config ), "my-plugin requires setting required-setting" -Or you can return an async function which will be awaited on startup. Use this option if you need to make any database queries: +You can also return an async function, which will be awaited on startup. Use this option if you need to execute any database queries, for example this function which creates the ``my_table`` database table if it does not yet exist: .. code-block:: python