Skip to content

Instantly share code, notes, and snippets.

@Segerberg
Created November 13, 2021 08:08
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save Segerberg/b96a0e0a5389dce2396497323cda7042 to your computer and use it in GitHub Desktop.
Save Segerberg/b96a0e0a5389dce2396497323cda7042 to your computer and use it in GitHub Desktop.
from datasette.database import Database
from datasette import hookimpl
from datasette.utils.asgi import Response
import os
`
async def reload_db(datasette):
spec = datasette.plugin_config('datasette-reload-db')
db_dir = os.listdir(spec['dir'])
databases = datasette.databases
for db in databases:
if db == '_internal':
continue
datasette.remove_database(db)
for db in db_dir:
datasette.add_database(Database(
datasette,
path=os.path.join(spec['dir'], db),
is_mutable=True
))
return Response.redirect('/')
@hookimpl
def register_routes():
return [
(r"^/-reload-db", reload_db)
]
@hookimpl
def menu_links(datasette):
return [
{"href": datasette.urls.path("/-reload-db"), "label": "Reload Databases"},
]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment