개발 데이터베이스(로컬)에서 태그를 삭제하는 방법은?

Manually restoring a Discourse backup for development 토론을 이어갑니다:

로컬 머신에서 백업 데이터베이스를 복원하기 전에 태그를 삭제하고 싶습니다. 콘솔을 통해 어떻게 해야 하나요?

Rails 콘솔에서 태그를 삭제하려면 다음을 시도해 보세요:

t = Tag.find_by_name('<your_tag_name>')
t.destroy!

마지막 명령에서 delete 대신 destroy!를 호출하면 삭제된 태그와 관련된 사이트의 모든 레코드를 정리합니다.

도와주셔서 감사합니다 :blush:

아직 실행되지 않은 데이터베이스에서 태그를 삭제할 수 있을까요? 예를 들어, 복원할 수 없는 백업(중복된 태그 문제 때문에)에서요.

질문이 명확한지 모르겠네요.

제가 직접 이 작업을 수행한다면, 백업 파일이 생성되었던 사이트로 돌아가 Rails 콘솔을 통해 태그를 삭제한 후 새로운 백업 파일을 생성하는 것으로 시작하겠습니다.

이것이 불가능하거나 중복 태그 문제를 해결하지 못한다면, psql 터미널을 열어 테이블에서 해당 행을 삭제할 수 있습니다. 예를 들어 다음과 같이:

DELETE FROM tags WHERE name = <your_tag_name>;

이 방식에 대한 제 우려는, Rails의 destroy! 명령을 사용할 때처럼 사이트 데이터베이스에서 삭제된 태그의 사용처를 제거하지 못할 수 있다는 점입니다. 아무것도 깨지지 않는지 확인하기 위해 백업 파일의 사본에서 먼저 테스트해 보는 것이 좋은 아이디어일 수 있습니다.

태그를 삭제하기 전에 SELECT 문을 실행해 보는 것도 좋은 방법입니다. 이렇게 하면 문제의 원인을 파악할 수 있을지도 모릅니다:

SELECT FROM tags WHERE name = <your_tag_name>;