Upgrading your Plex server hardware shouldn’t mean starting over. Your watch history, collections, playlists, poster selections, user accounts, and every manual metadata fix you’ve made over the years — all of that lives in the Plex database and can be moved to new hardware. Here’s how to do it without losing anything.
What Transfers and What Doesn’t
Before you start, know exactly what you’re moving:
- Transfers with the database: Watch history, On Deck status, collections, playlists, custom poster/art selections, match corrections, user accounts (Plex Home), server settings, scheduled tasks, subtitle preferences
- Does NOT transfer automatically: Media files (you handle this separately), library paths (if they differ between old and new), DVR/Live TV settings (tuner hardware dependent), SSL certificates (regenerated), transcoder codecs (re-downloaded)
Pre-Migration Checklist
- Check Plex versions. Install the same version (or newer) on the new server. Going backward in versions can cause database incompatibility
- Note your library paths. Open Plex Web → Settings → Libraries and screenshot or write down every library’s folder paths. If paths will differ on the new server, you’ll need to update them after migration
- Check disk space. The Plex data directory can be 10–100+ GB depending on metadata and poster caches. Make sure the new server has enough room
- Back up first. Even though migration is the goal, make a separate backup copy of your database files in case something goes wrong
Same OS Migration (Easiest)
Moving between the same operating system (Windows to Windows, Linux to Linux) is the simplest path:
- Stop Plex Media Server on the old machine
- Copy the entire Plex data directory to the new machine. On Windows:
%LOCALAPPDATA%\Plex Media Server. On Linux:/var/lib/plexmediaserver/Library/Application Support/Plex Media Server - Install Plex Media Server on the new machine (don’t run it yet, or run it once and then stop it)
- Replace the new machine’s data directory with the one you copied
- If library paths changed, start Plex and go to Settings → Libraries → Edit each library to point to the new paths
- If the server IP changed, reclaim via plex.tv/claim
Cross-OS Migration (Windows ↔ Linux ↔ Mac)
Plex’s SQLite database is cross-platform. The process is the same as above, but with two extra considerations:
- Path format changes: Windows uses backslashes (
C:\Media\Movies), Linux/Mac uses forward slashes (/media/movies). After copying the database, start Plex and update all library paths - File permissions: On Linux, the Plex data directory must be owned by the
plexuser. After copying, runsudo chown -R plex:plex /var/lib/plexmediaserver
Docker Migration
If you’re running Plex in Docker, your data directory is wherever you mapped the /config volume. Migration is straightforward:
- Stop the Plex container on the old host
- Copy the entire config volume directory to the new host
- Update your docker-compose.yml on the new host with the correct volume paths and any hardware transcoding device mappings
- Start the container. If the claim token expired, set the
PLEX_CLAIMenvironment variable with a fresh token from plex.tv/claim
Migrating Media Files
The media files themselves (movies, TV shows, music) need to be accessible to the new server. Options:
- Same NAS/network share: If your media lives on a NAS and the new server can mount the same share, just mount it and point the libraries there. Easiest option
- Direct copy: For local storage, rsync (Linux/Mac) or robocopy (Windows) are the best tools for large file transfers with resume capability
- New drive in new machine: Physically move the drives. If using the same drive letters/mount points, Plex won’t even notice
Post-Migration Verification
- Libraries: Check that all libraries show the correct item count. If anything is missing, verify the paths
- Watch history: Pick a random user and verify their watched/unwatched status is correct
- Collections and playlists: Open a few and confirm they’re intact
- Remote access: Go to Settings → Remote Access and verify it’s reachable. You may need to update port forwarding on your router if the server IP changed
- Hardware transcoding: Play a file that requires transcoding and verify it’s using hardware acceleration on the new hardware
- Scheduled tasks: Check Settings → Scheduled Tasks to confirm your maintenance window and scan schedules carried over
Common Migration Problems
- “Server not found” after migration: The server needs to be reclaimed. Go to plex.tv/claim, get a token, and either set it in Docker env or sign out/in on the server
- All media shows as unplayed: You likely started fresh instead of copying the database. The watch history is in the database, not the media files
- Metadata missing after path change: If you changed library paths, Plex may rescan and re-match everything. Let the scan complete before panicking
- Permissions errors on Linux: The
plexuser must own the data directory AND have read access to the media directories