diff --git a/docs/installation.rst b/docs/installation.rst index cb17ebf..d6f5145 100644 --- a/docs/installation.rst +++ b/docs/installation.rst @@ -39,6 +39,26 @@ Using pipx pipx install sqlite-utils +.. _installation_sqlite3_alternatives: + +Alternatives to sqlite3 +======================= + +By default, ``sqlite-utils`` uses the ``sqlite3`` package bundled with the Python standard library. + +Depending on your operating system, this may come with some limitations. + +On some platforms the ability to load additional extensions (via ``conn.load_extension(...)`` or ``--load-extension=/path/to/extension``) may be disabled. + +You may also see the error ``sqlite3.OperationalError: table sqlite_master may not be modified`` when trying to alter an existing table. + +You can work around these limitations by installing either the `pysqlite3 `__ package or the `sqlean.py `__ package, both of which provide drop-in replacements for the standard library ``sqlite3`` module but with a recent version of SQLite and full support for loading extensions. + +To install ``sqlean.py`` (which has compiled binary wheels available for all major platforms) run the following: + +.. code-block:: bash + + sqlite-utils install sqlean.py .. _installation_completion: