-
-
Notifications
You must be signed in to change notification settings - Fork 813
Closed
Labels
Description
When starting datasette on a SpatialLite database without loading the SpatiaLite extension (using eg --load-extension=/usr/local/lib/mod_spatialite.dylib) an error is thrown and the server fails to start:
datasette -p 8003 adminboundaries.db
Serve! files=('adminboundaries.db',) on port 8003
Traceback (most recent call last):
File "/Users/ajh59/anaconda3/bin/datasette", line 11, in <module>
sys.exit(cli())
File "/Users/ajh59/anaconda3/lib/python3.6/site-packages/click/core.py", line 722, in __call__
return self.main(*args, **kwargs)
File "/Users/ajh59/anaconda3/lib/python3.6/site-packages/click/core.py", line 697, in main
rv = self.invoke(ctx)
File "/Users/ajh59/anaconda3/lib/python3.6/site-packages/click/core.py", line 1066, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/Users/ajh59/anaconda3/lib/python3.6/site-packages/click/core.py", line 895, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/Users/ajh59/anaconda3/lib/python3.6/site-packages/click/core.py", line 535, in invoke
return callback(*args, **kwargs)
File "/Users/ajh59/anaconda3/lib/python3.6/site-packages/datasette/cli.py", line 552, in serve
ds.inspect()
File "/Users/ajh59/anaconda3/lib/python3.6/site-packages/datasette/app.py", line 273, in inspect
"tables": inspect_tables(conn, self.metadata.get("databases", {}).get(name, {}))
File "/Users/ajh59/anaconda3/lib/python3.6/site-packages/datasette/inspect.py", line 79, in inspect_tables
"PRAGMA table_info({});".format(escape_sqlite(table))
sqlite3.OperationalError: no such module: VirtualSpatialIndex
It would be nice to trap this and return a message saying something like:
It looks like you're trying to load a SpatiaLite database? Make sure you load in the SpatiaLite extension when starting datasette.
Read more: https://datasette.readthedocs.io/en/latest/spatialite.html
Reactions are currently unavailable