mirror of
https://github.com/home-assistant/core.git
synced 2025-07-17 10:17:09 +00:00
Remove automatic sqlite vacuum (#12728)
This commit is contained in:
parent
98fef81d19
commit
c1c23bb4b6
@ -165,7 +165,6 @@ class Recorder(threading.Thread):
|
|||||||
self.hass = hass
|
self.hass = hass
|
||||||
self.keep_days = keep_days
|
self.keep_days = keep_days
|
||||||
self.purge_interval = purge_interval
|
self.purge_interval = purge_interval
|
||||||
self.did_vacuum = False
|
|
||||||
self.queue = queue.Queue() # type: Any
|
self.queue = queue.Queue() # type: Any
|
||||||
self.recording_start = dt_util.utcnow()
|
self.recording_start = dt_util.utcnow()
|
||||||
self.db_url = uri
|
self.db_url = uri
|
||||||
@ -269,7 +268,7 @@ class Recorder(threading.Thread):
|
|||||||
def async_purge(now):
|
def async_purge(now):
|
||||||
"""Trigger the purge and schedule the next run."""
|
"""Trigger the purge and schedule the next run."""
|
||||||
self.queue.put(
|
self.queue.put(
|
||||||
PurgeTask(self.keep_days, repack=not self.did_vacuum))
|
PurgeTask(self.keep_days, repack=False))
|
||||||
self.hass.helpers.event.async_track_point_in_time(
|
self.hass.helpers.event.async_track_point_in_time(
|
||||||
async_purge, now + timedelta(days=self.purge_interval))
|
async_purge, now + timedelta(days=self.purge_interval))
|
||||||
|
|
||||||
|
@ -66,6 +66,5 @@ def purge_old_data(instance, purge_days, repack):
|
|||||||
_LOGGER.debug("Vacuuming SQLite to free space")
|
_LOGGER.debug("Vacuuming SQLite to free space")
|
||||||
try:
|
try:
|
||||||
instance.engine.execute("VACUUM")
|
instance.engine.execute("VACUUM")
|
||||||
instance.did_vacuum = True
|
|
||||||
except exc.OperationalError as err:
|
except exc.OperationalError as err:
|
||||||
_LOGGER.error("Error vacuuming SQLite: %s.", err)
|
_LOGGER.error("Error vacuuming SQLite: %s.", err)
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
import json
|
import json
|
||||||
from datetime import datetime, timedelta
|
from datetime import datetime, timedelta
|
||||||
import unittest
|
import unittest
|
||||||
|
from unittest.mock import patch
|
||||||
|
|
||||||
from homeassistant.components import recorder
|
from homeassistant.components import recorder
|
||||||
from homeassistant.components.recorder.const import DATA_INSTANCE
|
from homeassistant.components.recorder.const import DATA_INSTANCE
|
||||||
@ -199,10 +200,12 @@ class TestRecorderPurge(unittest.TestCase):
|
|||||||
event.event_type for event in events.all()))
|
event.event_type for event in events.all()))
|
||||||
|
|
||||||
# run purge method - correct service data, with repack
|
# run purge method - correct service data, with repack
|
||||||
service_data['repack'] = True
|
with patch('homeassistant.components.recorder.purge._LOGGER') \
|
||||||
self.assertFalse(self.hass.data[DATA_INSTANCE].did_vacuum)
|
as mock_logger:
|
||||||
self.hass.services.call('recorder', 'purge',
|
service_data['repack'] = True
|
||||||
service_data=service_data)
|
self.hass.services.call('recorder', 'purge',
|
||||||
self.hass.block_till_done()
|
service_data=service_data)
|
||||||
self.hass.data[DATA_INSTANCE].block_till_done()
|
self.hass.block_till_done()
|
||||||
self.assertTrue(self.hass.data[DATA_INSTANCE].did_vacuum)
|
self.hass.data[DATA_INSTANCE].block_till_done()
|
||||||
|
self.assertEqual(mock_logger.debug.mock_calls[4][1][0],
|
||||||
|
"Vacuuming SQLite to free space")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user