This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

Upgrades

Upgrading ew-npvr to newer versions

    Upgrade Process

    Standard Upgrade

    To upgrade ew-npvr to a new version, follow these steps:

    1. Stop the service:

      systemctl stop ew-npvr
      
    2. Install the new version:

      dnf upgrade ./ew-npvr-x.y.z-1.el8.x86_64.rpm
      
    3. Review configuration changes:

    4. Start the service:

      systemctl start ew-npvr
      
    5. Verify the upgrade:

      systemctl status ew-npvr
      journalctl -u ew-npvr -n 50
      

    Database Schema Upgrades

    Database schema migrations are handled automatically by the service on startup. When upgrading:

    1. Ensure database connection is configured and accessible
    2. The service will apply any necessary schema migrations on first start
    3. Monitor logs for migration status: journalctl -u ew-npvr -f

    Backup Recommendation: Before upgrading, backup your PostgreSQL database:

    pg_dump -h localhost -U npvr_user npvr_db > npvr_backup_$(date +%Y%m%d).sql
    

    Rolling Back

    If you need to roll back to a previous version:

    1. Stop the service:

      systemctl stop ew-npvr
      
    2. Downgrade the package:

      dnf downgrade ew-npvr-<previous-version>
      
    3. Restore database if needed:

      # Only if database schema changed
      psql -h localhost -U npvr_user npvr_db < npvr_backup_YYYYMMDD.sql
      
    4. Start the service:

      systemctl start ew-npvr
      

    Compatibility Notes

    • Database: Schema changes are forward-compatible but not backward-compatible. Always backup before upgrading.
    • Configuration: New configuration options have default values, so existing configurations remain valid.
    • API: The Management API maintains backward compatibility within major versions.
    • Storage: Recording storage format is backward-compatible.

    Testing the Upgrade

    After upgrading, verify functionality:

    1. Check service health:

      curl http://localhost:8099/
      
    2. List existing recordings:

      curl http://localhost:8099/api/v1/content?limit=10
      
    3. Create a test recording:

      curl -X POST http://localhost:8099/api/v1/content \
        -H "Content-Type: application/json" \
        -d '{
          "channelName": "test-channel",
          "title": "Upgrade Test",
          "startTime": '$(date +%s)',
          "stopTime": '$(( $(date +%s) + 3600 ))'
        }'
      
    4. Verify logs:

      journalctl -u ew-npvr -n 100 --no-pager
      

    Common Upgrade Issues

    Service fails to start:

    • Check logs: journalctl -u ew-npvr -n 50
    • Verify configuration syntax
    • Check file permissions
    • Ensure database is accessible

    Database migration fails:

    • Check PostgreSQL connectivity
    • Verify user has schema modification permissions
    • Review migration logs in service output
    • Consider restoring backup and retrying

    Recordings not accessible:

    • Verify storage paths haven’t changed
    • Check file permissions on storage locations
    • Review configuration for storage location names
    • Ensure media API is properly configured

    Performance degradation:

    • Check content info cache size setting
    • Review write rate limit if enabled
    • Monitor database query performance
    • Verify disk I/O isn’t saturated

    Version-Specific Notes

    Check the release notes for version-specific upgrade instructions and breaking changes.