Peewee Sqlite Авто Вакуум - PullRequest
       16

Peewee Sqlite Авто Вакуум

0 голосов
/ 26 февраля 2020

Я не могу установить параметр auto_vacuum через peewee.

Запустить этот фрагмент:

from playhouse.sqlite_ext import SqliteExtDatabase, Model, TextField, IntegerField, JSONField

db = SqliteExtDatabase('my_app.db', pragmas=(('cache_size', -1024 * 64), ('journal_mode', 'wal'), ('auto_vacuum', 1)))

class EventLog(Model):
     key = TextField()
     value = JSONField()
     class Meta:
         database = db

EventLog.create_table()

После этого:

Я подключился к базе данных sqlite

sqlite3 my_app.db 
SQLite version 3.22.0 2018-01-22 18:45:57
Enter ".help" for usage hints.
sqlite> PRAGMA auto_vacuum;
0
sqlite> PRAGMA journal_mode;
wal 

Почему переменная auto_vacuum не изменяется?

1 Ответ

0 голосов
/ 26 февраля 2020

Возможно, этот фрагмент из sqlite Pragma do c [выделение добавлено] объясняет, что происходит

Соединение с базой данных может быть изменено между полным и инкрементным режимами автоочистки в любое время. Однако изменение с «none» на «full» или «incremental» может происходить только в том случае, если база данных новая (таблицы еще не созданы) или при выполнении команды VACUUM. Для изменения режимов автоматического вакуумирования Сначала используйте прагму auto_vacuum для установки нового желаемого режима, затем вызовите команду VACUUM для реорганизации всего файла базы данных. Для перехода с «полного» или «инкрементного» обратно на «нет» всегда требуется запуск VACUUM даже в пустой базе данных. **

...