## Todo
- [ ] **Assessment Phase**
- [ ] Audit all *arr applications in arr-stack namespace
- [ ] Check which apps currently use SQLite (Sonarr, Radarr, Prowlarr, Bazarr, etc.)
- [ ] Verify PostgreSQL support for each application
- [ ] Document current SQLite database locations and sizes
- [ ] Check Jellyfin and Jellyseerr PostgreSQL compatibility
- [ ] Plan migration order (start with least critical apps)
- [ ] **PostgreSQL Preparation**
- [ ] Create dedicated databases in existing PostgreSQL instance
- [ ] sonarr_main database
- [ ] sonarr_log database
- [ ] radarr_main database
- [ ] radarr_log database
- [ ] prowlarr_main database
- [ ] prowlarr_log database
- [ ] bazarr database
- [ ] jellyseerr database (if supported)
- [ ] Create database users with proper permissions for each app
- [ ] Test connectivity from arr-stack namespace to postgresql namespace
- [ ] Document connection strings for each application
- [ ] **Migration Scripts & Tools**
- [ ] Research official migration tools for each *arr app
- [ ] Download/prepare sqlite3 to postgresql conversion tools
- [ ] Create backup scripts for current SQLite databases
- [ ] Test migration process on development/test databases
- [ ] Prepare rollback procedures for each application
- [ ] **Sonarr Migration**
- [ ] Stop Sonarr deployment in arr-stack
- [ ] Backup current Sonarr SQLite databases (sonarr.db, logs.db)
- [ ] Export SQLite data using official Sonarr migration tools
- [ ] Update Sonarr configuration to use PostgreSQL
- [ ] Import data into PostgreSQL databases
- [ ] Update Sonarr Kubernetes deployment with new DB config
- [ ] Start Sonarr and verify functionality
- [ ] Test all Sonarr features (indexers, downloads, etc.)
- [ ] **Radarr Migration**
- [ ] Stop Radarr deployment in arr-stack
- [ ] Backup current Radarr SQLite databases
- [ ] Export SQLite data using Radarr migration tools
- [ ] Update Radarr configuration for PostgreSQL
- [ ] Import data into PostgreSQL databases
- [ ] Update Radarr Kubernetes deployment
- [ ] Start Radarr and verify movie library intact
- [ ] Test Radarr indexer and download functionality
- [ ] **Prowlarr Migration**
- [ ] Stop Prowlarr deployment in arr-stack
- [ ] Backup Prowlarr SQLite database
- [ ] Export indexer configurations and settings
- [ ] Update Prowlarr configuration for PostgreSQL
- [ ] Import data into PostgreSQL database
- [ ] Update Prowlarr Kubernetes deployment
- [ ] Start Prowlarr and verify all indexers working
- [ ] Test sync with Sonarr/Radarr after their migrations
- [ ] **Bazarr Migration**
- [ ] Stop Bazarr deployment in arr-stack
- [ ] Backup Bazarr SQLite database
- [ ] Check if Bazarr supports PostgreSQL (may need to stay SQLite)
- [ ] If supported: migrate using available tools
- [ ] If not supported: document keeping SQLite for Bazarr
- [ ] Update deployment configuration as needed
- [ ] Verify subtitle download functionality
- [ ] **Jellyfin Migration (if supported)**
- [ ] Research Jellyfin PostgreSQL support status
- [ ] If supported: plan migration of user data and watch history
- [ ] If not supported: document keeping existing database
- [ ] Test integration with migrated *arr applications
- [ ] **Jellyseerr Migration (if supported)**
- [ ] Check Jellyseerr PostgreSQL compatibility
- [ ] Backup current Jellyseerr database
- [ ] Plan migration of user requests and settings
- [ ] Test integration with migrated *arr stack
- [ ] **Post-Migration Validation**
- [ ] Verify all *arr apps can communicate with each other
- [ ] Test end-to-end workflow (request → download → import)
- [ ] Verify all historical data preserved (download history, etc.)
- [ ] Check Prowlarr sync functionality with all apps
- [ ] Test indexer functionality across all applications
- [ ] Verify webhook integrations still work
- [ ] **Cleanup & Monitoring**
- [ ] Remove old SQLite database files after successful migration
- [ ] Update backup scripts to include PostgreSQL databases
- [ ] Add *arr database monitoring to observability stack
- [ ] Create PostgreSQL performance dashboards for *arr apps
- [ ] Document new database architecture
- [ ] Update disaster recovery procedures
## In Progress
## Completed
## NOTES
- [ ] **Namespace:** arr-stack (existing applications)
- [ ] **Database:** Shared PostgreSQL instance in postgresql namespace
- [ ] **Migration Order:** Start with Prowlarr (affects others), then Sonarr/Radarr, then Bazarr
- [ ] **Compatibility:** Some apps may not support PostgreSQL yet
- [ ] **Backup Strategy:** Full SQLite backups before each migration
- [ ] **Rollback Plan:** Keep SQLite backups until migration fully validated
- [ ] **Testing:** Verify complete *arr workflow after each app migration
%% kanban:settings
```
{"kanban-plugin":"board","list-collapse":[false]}
```
%%