Ostatnią działającą dotychczas wersję HA 2023.1.7 postanowiłem w końcu zaktualizować do najnowszej.
Wystąpił błąd migracji bazy. Błąd ten występuje już przy zmianie na kolejną 2023.2.1 wersję.
Baza to MariaDB na dockerze
2023-03-11 07:46:08.057 WARNING (Recorder) [homeassistant.components.recorder.migration] Database is about to upgrade from schema version: 30 to: 33
2023-03-11 07:46:08.070 WARNING (Recorder) [homeassistant.components.recorder.migration] Adding columns time_fired_ts to table events. Note: this can take several minutes on large databases and slow computers. Please be patient!
2023-03-11 07:46:08.077 WARNING (Recorder) [homeassistant.components.recorder.migration] Column time_fired_ts already exists on events, continuing
2023-03-11 07:46:08.080 WARNING (Recorder) [homeassistant.components.recorder.migration] Adding columns last_updated_ts, last_changed_ts to table states. Note: this can take several minutes on large databases and slow computers. Please be patient!
2023-03-11 07:46:08.090 WARNING (Recorder) [homeassistant.components.recorder.migration] Column last_updated_ts already exists on states, continuing
2023-03-11 07:46:08.095 WARNING (Recorder) [homeassistant.components.recorder.migration] Column last_changed_ts already exists on states, continuing
2023-03-11 07:46:08.099 WARNING (Recorder) [homeassistant.components.recorder.migration] Adding index `ix_events_time_fired_ts` to database. Note: this can take several minutes on large databases and slow computers. Please be patient!
2023-03-11 07:46:08.102 WARNING (Recorder) [homeassistant.components.recorder.migration] Index ix_events_time_fired_ts already exists on events, continuing
2023-03-11 07:46:08.115 WARNING (Recorder) [homeassistant.components.recorder.migration] Adding index `ix_events_event_type_time_fired_ts` to database. Note: this can take several minutes on large databases and slow computers. Please be patient!
2023-03-11 07:46:08.126 WARNING (Recorder) [homeassistant.components.recorder.migration] Index ix_events_event_type_time_fired_ts already exists on events, continuing
2023-03-11 07:46:08.128 WARNING (Recorder) [homeassistant.components.recorder.migration] Adding index `ix_states_entity_id_last_updated_ts` to database. Note: this can take several minutes on large databases and slow computers. Please be patient!
2023-03-11 07:46:08.135 ERROR (Recorder) [homeassistant.components.recorder.util] Error executing query: (MySQLdb.OperationalError) (1071, 'Specified key was too long; max key length is 1000 bytes')
[SQL: CREATE INDEX ix_states_entity_id_last_updated_ts ON states (entity_id, last_updated_ts)]
(Background on this error at: https://sqlalche.me/e/14/e3q8)
2023-03-11 07:46:08.156 ERROR (Recorder) [homeassistant.components.recorder.core] Database error during schema migration
Mam dość blade pojęcie o bazach ale intuicja podpowiada mi, że brak jest jakiś uprawnień dla HA do manipulacji na tej bazie?
Miałem kiedyś podobny problem i za pomocą phpMyAdmin z “łapy” udało mi się to poprawić.
W tym przypadku jednak nie bardzo wiem. Podpowie ktoś?
@artpc… wpadłem na to …kolejną jest 2023.2.1 i to z niej są logi.
Na forach przytrafią się ludziom ten błąd ale z rozwiązaniem wiąże się utrata danych.
homeassistant.components.recorder.util] Error executing query: (MySQLdb.OperationalError) (1071, ‘Specified key was too long; max key length is 1000 bytes’)
Wartość klucza za duża.
Odinstalować i zainstalować na nowo MariaDB
Zgadza się ma być w states, tylko nazwę indeksu podaj pełną (tą z loga)
ix_states_entity_id_last_updated_ts ON
i kolumny tak jak zaznaczyłeś.
Edit:
Jeśli jeszcze nie natknąłeś się na poniższy temat to w zeszłym roku na jego podstawie dodawałem brakujące indeksy. Niestety z lutową aktualizacją nie dałem rady przebrnąć dalej i odpuściłem. Ale nie miałem w logach tej podpowiedzi:
[SQL: CREATE INDEX ix_states_entity_id_last_updated_ts ON states (entity_id, last_updated_ts)]
@RobinI30 MariaDB masz na dockerze czy to usługa na QNAP? Bo ja miałem jako usługę pod Synkiem i on miał starą wersję i musiałem przechodzić na najnowszy obraz na dockerze. Bo się HA pluło. Obecnie HA mam w wersji 2023.2.5 i bez problemu.
A tak poza tym to pewnie w samej bazie przydałoby się dołożyć kilka indeksów, bo chyba nie jest ona w 100% optymalna. Gdzieś jakiś temat o tym widziałem, ale już nie pamiętam. Może ktoś jest bardziej biegły w temacie?