A simple Directus hook to load the SpatialLite extension into SQLite on each connection
npm install directus-hook-sqlite-spatialiteIf you want to use GEO functions inside directus and are using SQLite as your
database backend, you need the
SpatiaLite extension for
SQLite.
This Directus extension will load the module into the database (it will add it
to every connection, that is the way how it works for SQLite).
> [!WARNING]
> If used in conjunction with the
> directus-hook-sqlite-perf
> extension, it is possible that if you have more connections in your database
> pool, loading of the spatialite extension happens a little to late. If this
> happens you'll get an error. Most of the time it will work when you retry
> saving.
>
> If this is an issue: set DB_POOL__MAX to 1!
Note that your Directus backend will need the library to be installed. If you
are using the official docker image you can easily build your own image with the
library included.
``Dockerfile
FROM directus/directus:11.0.2
USER root
RUN <
ln -s mod_spatialite.so.8 /usr/lib/mod_spatialite
EOF
USER node
``
This extension is inspired on the links in the list below.
- https://github.com/directus/directus/discussions/7758
- https://github.com/directus/directus/issues/13271
- https://github.com/directus/directus/pull/9917
- https://medium.com/@joelmalone/a-quick-sqlite3-and-spatialite-primer-7d9fc086e66b