wrolpi/modules
Roland 2132b2826b
Database configs carry a version the database keeps too
Step 1 of the config import rework.  A database config (tags, downloads,
channels, domains, playlists, repos, recently viewed) and the database now
each carry an integer version, so an import can tell which side is newer
without a clock (a Raspberry Pi's resets at boot):

- config_version (new table) holds the database's version of each config.
- An after_flush hook adds one to it for every config whose rows a flush
  changed, in the same transaction.  Each config registers what it owns
  (register_ownership): models, optionally only some columns, optionally
  only some rows (a Collection's kind; a Download's Collection's kind).
  Raw SQL writes to owned tables count explicitly.
- dump_config writes the database's version, read with the rows it saves;
  save() no longer adds one for these configs.
- An import compares versions first: file == database or newer imports
  with deletes; file older (the database changed and was not saved before a
  restart) saves the database instead of undoing that change; no database
  row (a config this code never imported) imports without deletes.  The
  import records the file's version last.
- The Import button and backup imports apply the file whatever its version
  (import_forced).

Importers only gate their existing deletes on the decision here; they are
otherwise unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 11:58:43 -06:00
..
archive Database configs carry a version the database keeps too 2026-10-24 11:58:43 -06:00
docs Model reprs read only loaded state (#819) 2026-10-11 16:47:32 -06:00
flasher db: request-path library functions use the request's connection (#774) 2026-10-04 11:05:20 -06:00
inventory Strip whitespace from inventory item string values on save 2026-07-30 17:34:46 -06:00
map Channel and map subscription changes wait for a concurrent writer (#851) 2026-10-21 16:48:52 -06:00
repos Database configs carry a version the database keeps too 2026-10-24 11:58:43 -06:00
videos Database configs carry a version the database keeps too 2026-10-24 11:58:43 -06:00
zim Database configs carry a version the database keeps too 2026-10-24 11:58:43 -06:00
__init__.py Add a Repos module that mirrors git repositories (#783) 2026-10-07 15:16:58 -06:00