여러분은 가만히 계세요 제가 모두 고장낼게요

IT 지식, PC 모바일 문제 해결 그리고 종종 애니 게임 일상생활 근황을 종종 올리고 있어요!

냐.한국 자세히보기

카테고리 없음

Plex 볼륨 간 파일 이동 후 메타데이터 DB 편집하기

Kamilake 2021. 6. 26. 12:52
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

일단 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 쪽으로 아무 문제 없이 이동되었네요!

모든 작업이 완료되었습니다. 여기서 마쳐도 좋지만 저는 데이터베이스를 깔끔하게 유지하고 빠른 검색이 가능하도록 몇가지 청소도 돌리도록 할게요

사실, 이 아래 작업을 하지 않기 위해 위 가이드를 따라하는 분이 많이 계시기에 아래는 선택사항입니다.

오프라인 메타 데이터를 지정하거나 특별한 이유가 있지 않으면 따라해도 좋아요

미디어 스캐닝 한번 돌리고 휴지통 비우기 선택후

데이터베이스 최적화와 번들 제거를 눌러주시면 위 휴지통 라벨을 제거하면서 생긴 쓸모없는 파일을 모두 제거할 수 있습니다.

 

 

이 글이 도움이 되셨으면 좋겠어요!