Waarschuwing voor Unstable - EFCore-refactoring komt eraan
Deze pagina is vertaald door PageTurner AI (beta). Niet officieel goedgekeurd door het project. Een fout gevonden? Probleem melden →

Unstable-gebruikers: we zijn van plan om onze in behandeling zijnde EFCore-conversie van library.db in de komende weken samen te voegen. Het is essentieel dat alle unstable-gebruikers begrijpen wat er gebeurt, wat het plan is en hoe je problemen die hier onvermijdelijk uit voortkomen kunt beperken. Gebruikers van de stabiele versie (10.y.z) hoeven niets te doen.
Unstable-builds zijn momenteel ongeveer 4 weken na de release van 10.10.0 gepauzeerd. Gedurende deze periode willen we deze omvangrijke databasewijzigingen doorvoeren. Verwacht problemen - bugs, fixes en databasemigraties - in deze fase. Dit is je waarschuwing om óf (a) je voor te bereiden met een goede back-up- en herstelstrategie en automatische updates uit te schakelen; óf (b) over te stappen naar de stabiele 10.10.0-versie tot de storm geluwd is (maar doe dit alsjeblieft niet, want we hebben je hulp nodig bij het testen!)
Lees verder voor een gedetailleerd overzicht als je geïnteresseerd bent.
- Joshua
Wat is EFCore en waarom migreren we ernaar?
EFCore is het C#/.NET-framework voor databasebeheer, dat de afhandeling van databasequery's in de Jellyfin-codebase vereenvoudigt.
Onze oorspronkelijke databasecode is jaren geleden door Emby geschreven, lang voordat .NET Core bestond, toen Mono de standaard was voor cross-platform C#-compatibiliteit. Dit resulteerde in een slechte databaseafhandeling: SQLite-query's rechtstreeks in de code ingebed en een behoorlijk problematisch schema zonder migratiemogelijkheden. Dit veroorzaakte al jaren problemen bij het verbeteren van de codebase en toevoegen van nieuwe functies, waardoor het team al geruime tijd bezig is met migreren naar EFCore.
We konden veel databases snel migreren, vooral dankzij het nauwgezette werk van @BarronPM; deze draaien al meerdere grote releases. Maar de Bibliotheekdatabase bleef ongewijzigd vanwege zijn enorme complexiteit en uitzonderlijk slechte schema. Dit veroorzaakte talloze problemen, zoals trage zoekopdrachten, moeilijkheden bij het toevoegen van nieuwe mediatypen (of afschaffen van oude), en complexiteit in de codebase rond "niet-standaard" media (d.w.z. géén films/tv-series/muziekalbums), wat tot bugs leidde.
Dankzij @JPVenson is de EFCore-implementatie voor de bibliotheekdatabase nu eindelijk klaar. Maar er is een grote "maar".
Er Zullen Bugs Zijn
Zodra we deze enorme wijzigingsset samenvoegen, zullen er bugs ontstaan. Dat staat vast. Deze bugs kunnen je bibliotheekdatabase volledig vernielen. Daarom is het cruciaal dat iedereen die Unstable-builds gebruikt, begrijpt wat er komt en hoe je je kunt voorbereiden.
Waar we ons op richten
Ons hoofddoel is stabiele migraties tussen 10.10.x en 10.11.x gegarandeerd te laten werken, aangezien we deze overgang zo naadloos mogelijk willen laten verlopen voor de meeste gebruikers bij de release van 10.11.0.
Hiervoor moeten we zowel de wijzigingen in unstable testen als zekerstellen dat onze migraties werken met gegevens uit de stabiele 10.10.x-versie.
Het nadeel is echter dat we migraties tussen unstable-versies mogelijk niet correct kunnen laten werken. We zullen het proberen, maar kunnen dit niet garanderen.
Onze tijdlijn
-
Deze blogpost markeert het begin van de waarschuwing aan alle gebruikers van onstabiele builds dat deze verandering eraan komt. Let op: op het moment van publicatie zijn onstabiele builds uitgeschakeld vanwege de recente 10.10.0-release en zullen nog enige tijd uitgeschakeld blijven.
-
Ongeveer 1-2 weken na deze blogpost zullen we de EFCore-migratie voor de bibliotheek samenvoegen in onze
master-branch en voorlopige tests starten. Als je hierbij wilt helpen, moet je Jellyfin vanaf de bron bouwen. Hoe meer mensen hierbij kunnen helpen, hoe beter! -
Ongeveer 2 weken na het samenvoegen, ervan uitgaande dat alles er goed uitziet, zullen we onstabiele builds opnieuw inschakelen voor het algemene publiek. Vanaf dat moment zullen alle onstabiele builds de initiële migraties toepassen bij het opstarten. Dit brengt ons op ongeveer 4 weken (met een marge van ongeveer een week) na de 10.10.0-release.
-
In de weken daarna zullen we bugrapporten verzamelen en oplossen. Dit is het mogelijke knelpunt: als we geen schone migratieset kunnen implementeren, kunnen we ons mogelijk alleen richten op migraties van stabiele naar onstabiele versies in plaats van onstabiel naar onstabiel. Als dit gebeurt, moet je mogelijk een vorige versie herstellen en daarop de nieuwe migraties toepassen.
Wat dit concreet voor u betekent
Allereerst: als dit te ingewikkeld voor je is, is dit je waarschuwing om uit te stappen. Stap nu over van onstabiele builds voordat we deze over enkele weken opnieuw inschakelen.
Ten tweede: zorg voor een robuust back-upstrategie gebaseerd op ons aanbevolen back-upproces. Maak regelmatig back-ups en bewaar bij voorkeur ook een back-up van je laatste stabiele release om deze door de migraties te halen. Maak altijd back-ups voordat je een nieuwe onstabiele build installeert.
Ten derde: schakel automatische updates uit. We raden dit sowieso aan, maar als je dit nog doet, is nu het moment om te stoppen.
Ten vierde: als je problemen tegenkomt, rapporteer de bug dan met een titel die [EFCore Library] bevat. Dit helpt ons bugs te vinden en op te lossen.
Ten vijfde en laatste: bij een mislukte migratie moet je eerst een oudere databaseversie herstellen en deze opnieuw proberen. Als dit nog steeds mislukt, probeer dan ook je oudste back-up (bij voorkeur 10.9.11 of 10.10.0 stabiel). Als ook die niet werkt, is dit een nieuwe bug om te rapporteren.