mirror of
https://github.com/simonw/datasette.git
synced 2025-12-10 16:51:24 +01:00
Store null instead of 'None' in _internal database table, closes #1970
This commit is contained in:
parent
234230e595
commit
8aa9cf629c
2 changed files with 17 additions and 5 deletions
|
|
@ -1,4 +1,5 @@
|
||||||
import asyncio
|
import asyncio
|
||||||
|
from pydoc import plain
|
||||||
from typing import Sequence, Union, Tuple, Optional, Dict, Iterable
|
from typing import Sequence, Union, Tuple, Optional, Dict, Iterable
|
||||||
import asgi_csrf
|
import asgi_csrf
|
||||||
import collections
|
import collections
|
||||||
|
|
@ -415,12 +416,19 @@ class Datasette:
|
||||||
# Compare schema versions to see if we should skip it
|
# Compare schema versions to see if we should skip it
|
||||||
if schema_version == current_schema_versions.get(database_name):
|
if schema_version == current_schema_versions.get(database_name):
|
||||||
continue
|
continue
|
||||||
|
placeholders = "(?, ?, ?, ?)"
|
||||||
|
values = [database_name, str(db.path), db.is_memory, schema_version]
|
||||||
|
if db.path is None:
|
||||||
|
placeholders = "(?, null, ?, ?)"
|
||||||
|
values = [database_name, db.is_memory, schema_version]
|
||||||
await internal_db.execute_write(
|
await internal_db.execute_write(
|
||||||
"""
|
"""
|
||||||
INSERT OR REPLACE INTO databases (database_name, path, is_memory, schema_version)
|
INSERT OR REPLACE INTO databases (database_name, path, is_memory, schema_version)
|
||||||
VALUES (?, ?, ?, ?)
|
VALUES {}
|
||||||
""",
|
""".format(
|
||||||
[database_name, str(db.path), db.is_memory, schema_version],
|
placeholders
|
||||||
|
),
|
||||||
|
values,
|
||||||
)
|
)
|
||||||
await populate_schema_tables(internal_db, db)
|
await populate_schema_tables(internal_db, db)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -19,8 +19,12 @@ async def test_internal_databases(ds_client):
|
||||||
)
|
)
|
||||||
).json()
|
).json()
|
||||||
assert len(databases) == 2
|
assert len(databases) == 2
|
||||||
assert databases[0]["database_name"] == "_internal"
|
internal, fixtures = databases
|
||||||
assert databases[1]["database_name"] == "fixtures"
|
assert internal["database_name"] == "_internal"
|
||||||
|
assert internal["is_memory"] == 1
|
||||||
|
assert internal["path"] is None
|
||||||
|
assert isinstance(internal["schema_version"], int)
|
||||||
|
assert fixtures["database_name"] == "fixtures"
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.asyncio
|
@pytest.mark.asyncio
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue