ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 테슬라메이트(teslamate)에서 잘못된 데이터 삭제방법
    Tesla Model3 2020. 9. 22. 14:46


    테슬라를 타시는 분들중에 TeslaMate 라는 프로그램을 사용하시는 분들이 많으실거라 생각됩니다.

    테슬라메이트 설치 방법은 오라클 클라우드에 많이들 설치하시다가 문제가 있는지 요즘은 라즈베리 이용해서들 

    많이 설치 하시는거 같습니다. 설치를 하시게 되면서 putty등 사용하시면 아래 설명을 이해하시는데 더욱 쉬우실거라

    생각됩니다.


    들어가기에 앞서 제가 잘못된 정보를 생성하게 된 계기를 간단하게 아래의 사진과 같이 기입해 봅니다.

    제가 운행하는 모델3 차량에 usb연결을 해제하지 않은 상태에서 강제로 usb를 제거한 이후에 기존 모델3에 있는

    센트리캠과 전방캠에 블랙박스 및 감시모드 저장이 제대로 안되는 현상이 발행하였고 여러가지 방법을 동원했지만

    해결이 되지 않아 결국 공장초기화를 진행하였습니다.


    테슬라메이트를 운영하는 상태에서 공장초기화를 하니 위치 정보등이 본사 정보로 변경되면서 아래와 같이 

    눈에띄는 2가지 문제가 있었습니다.


    1. 시간이 미국시간으로 변경(아래 사진이 오전4시/정상 오후8시/운행하고 정상으로 돌아옴)

    2. 위치가 팔로알토로 변경(아래 지도참고)


    시간이 변경된..



    테슬라메이트의 visit에 미국을 다녀온..



    1. Docker 프로세스 확인

    위와 같이 잘못된 정보가 기입되어 있어서 해당 내역을 삭제하려고 아래와 같이 Teslamate DB에 접속을 합니다.

    DB접속을 위해서는 Putty를 이용하시어 설치하신 나스 혹은 라즈베리에 접속(ssh)하셔야 됩니다!


    먼저 해당 정보가 저장되어 있는 postgres가 어떤건지 한번 명령어를 내려서 확인해 봅니다.

    docker에 설치되어 있기에 ps를 사용하여 해당 컨테이너 id를 확인합니다. 저같은 경우는 7a939~ 이네요.

    # docker ps



    2. Docker에 설치된 DB접속하기

    해당 컨테이너 ID를 확인하면 아래와 같이 접속을 합니다. 아래 컨테이너ID 는 위에서 확인한 id를 넣어주심 됩니다.

    해당 DB에 접속후 \dt를 입력하면 해당 테이블들이 보이게 되네요. 저희가 필요한 테이블은 positions 입니다.

    # docker exec -it 컨테이너ID psql -U teslamate -d teslamate



    우리에게 필요한 정보가 저장된 positions 테이블의 내용을 한번 보면 아래와 같이 여러가지 정보가 저장되어 있는것을

    확인할 수 있습니다. 그중에 저희는 팔로알토로 간 정보를 삭제 해야하기 때문에 경도(longitude)정보를 확인합니다.



    3. 필요없는 자료 검색(Search)하기

    팔로알토의 경도는 -122로 시작을 하기 때문에(위도는 비슷함) 아래의 명령어를 입력하여 해당 자료를 찾습니다.

    경도가 0이하인 숫자이기 떄문에 select에서 아래와 같이 명령어를 입력하여 찾습니다.

    # select * from positions where longitude < 0;


    4. 해당데이터 값 삭제하기

    해당 결과값이 나오고 필요없는 내용을 아래의 명령어를 이용해서 삭제를 합니다. 

    문제가 있는 값의 맨 첫번째 id값을 where조건에 넣어서 삭제(id값 주의하시길!!!)

    # DELETE FROM positions where id = '해당id';


    이런식으로 직접 DB에 접속해서 자료를 삭제하는 작업은 사실 위험한 작업이기도 합니다만 확실한 잘못된 정보를 

    찾을 수 있다면 가장 정확하게 데이터를 삭제하는 방법이라고 할 수 있습니다.(기존정보를 살리면서도)


    그리고 저같은 경우 잘못된 경도를 찾아서 삭제했지만 응용을 하여 sql을 작성하시면 필요없는 데이터를 삭제하시는데 도움이 되실 듯 합니다.


    추천 코드를 사용하여 Tesla 차량을 신규 구매 시 차량 서비스 및 액세서리에 적용 가능한 ₩110,000 크레딧을 받을 수 있습니다
    https://ts.la/seungnam43897


    참고.

    해당 테슬라메이트 DB 백업할 경우

    # docker exec -it 컨테이너ID  pg_dump -U teslamate teslamate > /volume1/docker/teslamate.bck

    복원의 경우 아래 참고

    https://docs.teslamate.org/docs/upgrading

    댓글

Designed by Tistory.