일단 Plex를 꺼 줍시다.
저는 시놀로지를 사용하기 때문에 패키지 센터를 사용해 간단히 종료했어요.
그리고 신나게 파일을 이동하면 됩니다
엄청나게 오래 걸리겠네요.
(자신이 어디서 어디로 파일을 옮기는지 기억해두면 유용합니다. 저 같은 경우는 /volume1/Video 폴더에서 /volume2/Video 폴더로 이동중입니다)
오래 걸리는 동안 데이터베이스를 편집하면 되겠어요
Plex 데이터베이스의 절대 경로는
/volume1/Plex/Library/Application\ Support/Plex\ Media\ Server/Plug-in\ Support/Databases/com.plexapp.plugins.library.db
입니다.
volume1은 디스크에 따라 다를 수 있습니다.
콘솔에서 작업 중이시면 아래 명령처럼 파일을 원하는 곳에 복사해 주세요
cp /volume1/Plex/Library/Application\ Support/Plex\ Media\ Server/Plug-in\ Support/Databases/com.plexapp.plugins.library.db <원하는경로>
그리고 해당 파일을 안전하게 백업해주세요.
그리고 시놀로지 DSM 등에서 작업 중이라면..
이 곳으로 이동해주세요.
저 파일을 잘 백업하면 됩니다.
[DB 브라우저 사용 방법 적기]
파일이 정상적으로 열리면 잡다한 테이블과 뷰 인덱스 등의 DB 구조를 볼 수 있습니다.
우리는 이제 데이터 보기 탭으로 이동해서 파일 경로를 편집할 겁니다.
손으로 직접 편집하면 몇십만 개 편집하다 할아버지 할머니 됩니다.
제가 가져온 SQL 쿼리를 편집해서 손쉽게 변경하시면 됩니다.
-- 모든 volume2를 volume1쪽으로 이동합니다. 자신의 파일 경로에 따라 적절하게 고치시면 됩니다.
UPDATE section_locations SET root_path= replace(root_path, '/volume2/', '/volume1/') where root_path like '%/volume2/%';
UPDATE media_streams SET url= replace(url, 'file:///volume2/', 'file:///volume1/') where url like '%file:///volume2/%';
UPDATE media_parts SET file= replace(file, '/volume2/', '/volume1/') where file like '%/volume2/%';
-- 미디어 스캔을 돌리셨다면 아래 쿼리도 수행해 주세요. 삭제 플래그(휴지통 그림)를 제거하는 동작입니다.
UPDATE media_parts SET deleted_at=null;
UPDATE metadata_items SET deleted_at=null;
적절히 자신에 맞게 편집하신 후 DB 브라우저의 SQL 실행 탭에 붙여넣고 실행 버튼을 눌러주시면 됩니다.
실행 결과:
UPDATE section_locations SET root_path= replace(root_path, '/volume2/', '/volume1/') where root_path like '%/volume2/%';
-- Result: query executed successfully. Took 0ms, 3 행이 영향받았습니다
-- At line 3:
UPDATE media_streams SET url= replace(url, 'file:///volume2/', 'file:///volume1/') where url like '%file:///volume2/%';
-- Result: query executed successfully. Took 122ms, 1411 행이 영향받았습니다
-- At line 4:
UPDATE media_parts SET file= replace(file, '/volume2/', '/volume1/') where file like '%/volume2/%';
-- Result: query executed successfully. Took 3597ms, 14576 행이 영향받았습니다
-- At line 5:
-- 미디어 스캔을 돌리셨다면 아래 쿼리도 수행해 주세요. 삭제 플래그(휴지통 그림)를 제거하는 동작입니다.
UPDATE media_parts SET deleted_at=null;
-- Result: query executed successfully. Took 202ms
성공적으로 작동한 모양이네요
실제로 이동해서 잘 변경되었는지 확인 후 저장해줍니다.
명령줄에 commit;을 입력해줍니다. 그리고 그냥 나가기를 누르고 저장할 지 묻는 여부에서 예를 선택해 저장하면 됩니다.
마지막으로 DB 파일을 원위치하면 모든 과정이 끝납니다.
이제 PLEX를 켜 주세요
켜고 PLEX 미디어 서버에 접속했을 때 서버는 아무런 변경 사항도 눈치채지 못하고 평범하게 미디어를 재생해야 합니다.
상단에서 수정한 모든 볼륨 2가 볼륨 1 쪽으로 아무 문제 없이 이동되었네요!
모든 작업이 완료되었습니다. 여기서 마쳐도 좋지만 저는 데이터베이스를 깔끔하게 유지하고 빠른 검색이 가능하도록 몇가지 청소도 돌리도록 할게요
사실, 이 아래 작업을 하지 않기 위해 위 가이드를 따라하는 분이 많이 계시기에 아래는 선택사항입니다.
오프라인 메타 데이터를 지정하거나 특별한 이유가 있지 않으면 따라해도 좋아요
미디어 스캐닝 한번 돌리고 휴지통 비우기 선택후
데이터베이스 최적화와 번들 제거를 눌러주시면 위 휴지통 라벨을 제거하면서 생긴 쓸모없는 파일을 모두 제거할 수 있습니다.
이 글이 도움이 되셨으면 좋겠어요!