3.6 KiB
3.6 KiB
Datenbank
Ripster verwendet SQLite (backend/data/ripster.db).
Tabellen
settings_schema
settings_values
jobs
job_lineage_artifacts
job_output_folders
pipeline_state
scripts
script_chains
script_chain_steps
user_presets
cron_jobs
cron_run_logs
aax_activation_bytes
user_prefs
converter_scan_entries
jobs
Speichert Pipeline-Lifecycle und Artefakte pro Job.
Zentrale Felder:
- Metadaten:
title,year,imdb_id,poster_url,omdb_json,selected_from_omdb - Laufzeit:
start_time,end_time,status,last_state - Pfade:
raw_path,output_path,encode_input_path - Tool-Ausgaben:
makemkv_info_json,handbrake_info_json,mediainfo_info_json,encode_plan_json - Kontrolle:
encode_review_confirmed,rip_successful,error_message - Medientyp:
media_type(bluray|dvd|cd|audiobook|converter) - Prüfsumme:
aax_checksum(für AAX-Dateien) - Audit:
created_at,updated_at
job_lineage_artifacts
Verknüpft Jobs mit ihren Quell-Jobs (z. B. Re-Encode aus einem vorherigen Rip).
Felder:
job_id— der abgeleitete Jobsource_job_id— der Quell-Jobartifact_type— Art der Verknüpfung (z. B.reencode,restart_review)created_at
job_output_folders
Verfolgt Ausgabepfade pro Job (mehrere Ausgaben möglich, z. B. bei Kapitel-Splitting).
Felder:
job_idfolder_pathlabel— optionaler Bezeichnercreated_at
pipeline_state
Singleton-Tabelle (id = 1) für aktiven Snapshot:
stateactive_job_idprogressetastatus_textcontext_jsonupdated_at
settings_schema + settings_values
settings_schema: Definition (Typ, Default, Validation, Reihenfolge)settings_values: aktueller Wert pro Key
scripts, script_chains, script_chain_steps
scripts: Shell-Skripte (name,script_body,order_index)script_chains: Ketten (name,order_index)script_chain_steps: Schritte je Kettestep_type:scriptoderwaitscript_idoderwait_seconds
user_presets
Benannte HandBrake-Preset-Sets:
namemedia_type(bluray|dvd|other|all)handbrake_presetextra_argsdescription
cron_jobs + cron_run_logs
cron_jobs: Zeitplan + Statuscron_run_logs: einzelne Läufestatus:running|success|erroroutputerror_message
aax_activation_bytes
Cache für Audible-Activation-Bytes (AAX-DRM).
Felder:
checksum— SHA-1-Prüfsumme der AAX-Datei (Primärschlüssel)activation_bytes— Hex-String der Activation Bytescreated_at
user_prefs
Benutzer-spezifische Einstellungen (Key-Value).
Felder:
keyvalueupdated_at
converter_scan_entries
DB-seitige Erfassung gescannter Dateien im Converter-Eingangsordner.
Felder:
rel_path— relativer Pfad zumconverter_raw_diris_dir— Verzeichnis-Flagsize— Dateigröße in Bytesmodified_at— Datei-Änderungsdatumjob_id— zugewiesener Converter-Job (falls vorhanden)scanned_at
Migration/Recovery
Beim Start werden Schema und Settings-Metadaten automatisch abgeglichen.
Bei korruptem SQLite-File:
- Datei wird nach
backend/data/corrupt-backups/verschoben - neue DB wird initialisiert
- Schema wird neu aufgebaut
Direkte Inspektion
sqlite3 backend/data/ripster.db
.mode table
SELECT id, status, title, media_type, created_at FROM jobs ORDER BY created_at DESC;
SELECT key, value FROM settings_values ORDER BY key;
SELECT checksum, activation_bytes FROM aax_activation_bytes;
SELECT rel_path, job_id FROM converter_scan_entries;