In-memory _schemas database tracking schemas of attached tables, closes #1150

This commit is contained in:
Simon Willison 2020-12-18 14:34:05 -08:00
commit ebc7aa287c
8 changed files with 279 additions and 6 deletions

View file

@ -1024,11 +1024,12 @@ def find_spatialite():
async def initial_path_for_datasette(datasette):
"Return suggested path for opening this Datasette, based on number of DBs and tables"
if len(datasette.databases) == 1:
db_name = next(iter(datasette.databases.keys()))
databases = dict([p for p in datasette.databases.items() if p[0] != "_schemas"])
if len(databases) == 1:
db_name = next(iter(databases.keys()))
path = datasette.urls.database(db_name)
# Does this DB only have one table?
db = next(iter(datasette.databases.values()))
db = next(iter(databases.values()))
tables = await db.table_names()
if len(tables) == 1:
path = datasette.urls.table(db_name, tables[0])