add_memory_database(memory_name, name=None, route=None)

This commit is contained in:
Simon Willison 2025-11-05 15:18:17 -08:00
commit 1df4028d78
3 changed files with 10 additions and 6 deletions

View file

@ -729,8 +729,10 @@ class Datasette:
self.databases = new_databases self.databases = new_databases
return db return db
def add_memory_database(self, memory_name): def add_memory_database(self, memory_name, name=None, route=None):
return self.add_database(Database(self, memory_name=memory_name)) return self.add_database(
Database(self, memory_name=memory_name), name=name, route=route
)
def remove_database(self, name): def remove_database(self, name):
self.get_database(name).close() self.get_database(name).close()

View file

@ -781,8 +781,8 @@ Use ``is_mutable=False`` to add an immutable database.
.. _datasette_add_memory_database: .. _datasette_add_memory_database:
.add_memory_database(name) .add_memory_database(memory_name, name=None, route=None)
-------------------------- --------------------------------------------------------
Adds a shared in-memory database with the specified name: Adds a shared in-memory database with the specified name:
@ -800,7 +800,9 @@ This is a shortcut for the following:
Database(datasette, memory_name="statistics") Database(datasette, memory_name="statistics")
) )
Using either of these pattern will result in the in-memory database being served at ``/statistics``. Using either of these patterns will result in the in-memory database being served at ``/statistics``.
The ``name`` and ``route`` parameters are optional and work the same way as they do for :ref:`datasette_add_database`.
.. _datasette_remove_database: .. _datasette_remove_database:

View file

@ -15,7 +15,7 @@ async def datasette_with_permissions():
"""A datasette instance with permission restrictions for testing""" """A datasette instance with permission restrictions for testing"""
ds = Datasette(config={"databases": {"test_db": {"allow": {"id": "admin"}}}}) ds = Datasette(config={"databases": {"test_db": {"allow": {"id": "admin"}}}})
await ds.invoke_startup() await ds.invoke_startup()
db = ds.add_memory_database("test_db") db = ds.add_memory_database("test_datasette_with_permissions", name="test_db")
await db.execute_write( await db.execute_write(
"create table if not exists test_table (id integer primary key, name text)" "create table if not exists test_table (id integer primary key, name text)"
) )