CLI insert tool now uses generators, closes #7

Also cleaned up the logic so we commit rows in batches too.
This commit is contained in:
Simon Willison 2019-01-27 22:26:45 -08:00
commit 50589f8523
2 changed files with 15 additions and 14 deletions

View file

@ -185,13 +185,14 @@ class Table:
def create(self, columns, pk=None, foreign_keys=None, column_order=None):
columns = {name: value for (name, value) in columns.items()}
self.db.create_table(
self.name,
columns,
pk=pk,
foreign_keys=foreign_keys,
column_order=column_order,
)
with self.db.conn:
self.db.create_table(
self.name,
columns,
pk=pk,
foreign_keys=foreign_keys,
column_order=column_order,
)
self.exists = True
return self
@ -384,9 +385,9 @@ class Table:
values.extend(
jsonify_if_needed(record.get(key, None)) for key in all_columns
)
result = self.db.conn.execute(sql, values)
self.db.conn.commit()
self.last_id = result.lastrowid
with self.db.conn:
result = self.db.conn.execute(sql, values)
self.last_id = result.lastrowid
return self
def upsert(self, record, pk=None, foreign_keys=None, column_order=None):