# DBRepair development

**URL:** <https://forums.plex.tv/t/dbrepair-development/822684>\
**Category:** Apps & Creations\
**Created:** [December 14, 2022, 3:57am UTC](https://forums.plex.tv/t/dbrepair-development/822684 "2022-12-14T03:57:23Z")\
**Posts on this page:** 1\
**Showing post:** 1328

<div class="post-metadata">

**Author:** ![ChuckPa](https://sea1.discourse-cdn.com/plex/user_avatar/forums.plex.tv/chuckpa/32/79710_2.png) [@ChuckPa](https://forums.plex.tv/u/ChuckPa)\
**Post date:** [September 29, 2026, 7:05pm UTC](https://forums.plex.tv/t/dbrepair-development/822684/1328 "2026-09-29T19:05:38Z")

</div>

# ALL:

We’ve arrived.

## Welcome to DBRepair beta ! 🙂

I’ve done a lot of cleanup in preparation for production status.

### If it’s going to break, now is the time 🙂

### Beta test expiration is set at 21 days.

#### Release Notes

```auto
v00.99.11

  * Version Format - Changed version format to new publication format.

  * B-Tree Errors - DBRepair can now detect B-tree (hard damage) in the
                        database and deal with it automatically. Previously it
                        might fail after reconstructing a DB with this type
                        damage. Now it knows what to do.

  * Expunge - Expunge has been expanded.
                        - Expunge age may be set to a value other than the
                          default 180 days. Limit 3000 days
                        - Expunge removes "0" accounts, NULL accounts, or
                          age-expired accounts.
                        - Expunge removes all statistics associated with those
                          accounts.
                        - When expunge is completed, it prints a report showing
                          Name or account ID and Last Active plus a total
                          number of accounts removed from the DB.

  * Identification - DBRepair is now smarter at identifying PMS database
                        versions.

                      - If DBRepair can read your log files and that version is
                        known, it will have authoritative information to
                        complete all repairs (normal operation).
                        Without logs, but with a readable database set, it will
                        attempt to identify the PMS version it's from and load the
                        authoritative schemas for that version if in its list of
                        known versions (PMS 1.40.0 -> PMS 1.43.4 -- currently)
                        DBRepair can use your PMS-generated backups as a
                        reasonably authoritative source if it doesn't know the
                        exact version. Missing table, index, trigger, and
                        virtual table detection degrades at this point since it
                        has no authoritative source.
                      - Lastly, if no backups are available, DBRepair will use
                        your live DBs as the "Best Effort" source of information.
                        At this point, it can still repair SQLite DB damage and
                        rebuild anything it definitively identifies.
                        DBRepair will always, minimally, be able to perform basic
                        sqlite database checks, repairs and optimizations

  * Command Options - DBRepair now supports two new options in addition to
                        reading the same info from Environment variables
                      --cacheage N eg: --cacheage 90 (sets cache age limit to 90 days for pruning old files)
                      --expungeage N eg: --expungeage 90 (sets age limit to 90 days )

                      ( --cacheage is equivalent to DBREPAIR_CACHEAGE variable ) 
                      ( --expungeage is equivalent to DBREPAIR_EXPUNGEAGE variable )

Known limitation:

  * -n/--nocommit - Only run ONE command per invocation while -n is active.
                        -n prevents the repaired database from ever being made
                        "live", so a second command chained after it in the same
                        invocation (e.g. "auto expunge") does NOT see the first
                        command's result - it still operates on the original,
                        unrepaired database. Run commands one at a time under
                        -n.

  * GitHub - Preparations are ready for going live on GitHub. DBRepair
                        will support a "Update" function again with Download capability (no installs) 

```

## For your consideration:

- [MacOS - Arm64](https://drive.google.com/file/d/1eVQs1X_aDTSBLnh05muQ-X3PSnGKL3Qb/view?usp=sharing)

- [MacOS - X86\_64](https://drive.google.com/file/d/1I7fmcY8ZJBulckXM_WXgY6KFDX5ecRMw/view?usp=sharing)

- [Linux - Arm64](https://drive.google.com/file/d/17cLvPf7hJ_IPvHNZpIUsxIMjxVymi3qS/view?usp=sharing)

- [Linux - Arm32](https://drive.google.com/file/d/10isAN-ckRf2GZ5KgVovVBKNnp5RDltrQ/view?usp=sharing)

- [Linux - X86\_64](https://drive.google.com/file/d/14RmpgHaVHak7SGRTB31T_K8-VxjU-5mi/view?usp=sharing)

- [Windows - X86\_64](https://drive.google.com/file/d/1rWITSbNBz84v5D5zdJYQHX6MdEKWUy-w/view?usp=sharing)

---

_[View the full topic](https://forums.plex.tv/t/dbrepair-development/822684)._
