В случае sqlite неясно, можем ли мы легко выполнить фиксацию сразу после каждой вставки информационного кадра. (Предполагая, что автоматическая фиксация по умолчанию отключена, в соответствии с соглашением о переносе базы данных python).
Использование простейшего потока API sqlalchemy -
db_engine = db.create_engine()
for .....
# slowly compute some_df, takes a lot of time
some_df.to_sql(con = db_engine)
Как мы можем убедиться, что каждый .to_sql
совершено?
Для мотивации представьте, что конкретный вариант использования состоит в том, что каждая запись отражает результат потенциально очень длинных вычислений, и мы не хотим терять ни огромную партию таких вычислений, ни одну из них. В случае, если машина выходит из строя или в случае, если объект механизма python sqlalchemy подвергается сборке мусора до того, как все его записи будут фактически стерты в базе данных.
Я считаю, что автоматическая фиксация по умолчанию отключена, и для sqlite нет способа изменить это в команде create_engine
. Какой может быть самый простой и безопасный способ добавления поведения автоматической фиксации - или явной фиксации после каждой записи в информационный кадр - при использовании упрощенного .to_sql
api?
Или код должен быть реорганизован для использования другого потока APIчтобы сделать это?