Enable int IDs in PersistentState

This commit is contained in:
2021-01-09 19:29:25 -05:00
parent 89b21884b7
commit e3f3ea87eb
2 changed files with 39 additions and 2 deletions

View File

@@ -126,9 +126,13 @@ class Table:
try:
conn.execute(sql, list(_serialize(v) for v in value.values()))
except sqlite3.OperationalError:
if isinstance(key, int):
key_type = "integer"
else:
key_type = "text"
conn.execute(
"create table if not exists %s (id text primary key,%s)" %
(self._table, ",".join("%s %s" % (k, _sqlite_type(v)) for k, v in value.items()))
"create table if not exists %s (id %s primary key,%s)" %
(self._table, key_type, ",".join("%s %s" % (k, _sqlite_type(v)) for k, v in value.items()))
)
conn.execute(sql, list(_serialize(v) for v in value.values()))